new MessageBox(options)
- Description:
消息框控件。继承自 FineUI.Window,但通常通过快捷方法
FineUI.alert/FineUI.confirm/FineUI.prompt调用。相关在线示例:
Examples
推荐使用快捷方法FineUI.alert/FineUI.confirm/FineUI.prompt触发对话框(统一传配置对象,回调通过ok/cancel提供):
FineUI.alert('操作成功'); // 单参数:直接传消息字符串
FineUI.alert({
message: '操作成功', title: '提示', messageIcon: 'success'
});
FineUI.confirm({
message: '确定要删除此项吗?',
ok: function () { FineUI.alert('已删除'); },
cancel: function () { console.log('用户取消'); }
});
FineUI.prompt({
message: '请输入您的姓名:',
ok: function (inputValue) {
FineUI.alert('你输入了:' + inputValue);
}
});
需要更精细控制时,直接 create 一个 MessageBox 实例(messageType: 'alert' 触发标准弹窗):
FineUI.create({
type: 'MessageBox', messageType: 'alert', title: '提示', message: '操作成功', messageIcon: 'success'
});
自定义按钮配置,handler根据点击的按钮 id 分发处理:
FineUI.create({
type: 'MessageBox', title: '确认', message: '请选择操作', messageIcon: 'question',
buttons: [
{ buttonId: 'save', text: '保存' },
{ buttonId: 'discard', text: '丢弃' },
{ buttonId: 'cancel', text: '取消' }
],
handler: function (event, buttonId) {
FineUI.alert('你点击了:' + buttonId);
}
});
使用displayMilliseconds实现自动消失的通知(messageType=notify):
FineUI.create({
type: 'MessageBox', messageType: 'notify', message: '已成功保存', messageIcon: 'success', displayMilliseconds: 3000
});
Parameters:
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object | 初始参数 Properties
|
Extends
Members
bodyEl :jQuery
- Description:
控件主体对应的jQuery节点对象
- Inherited From:
控件主体对应的jQuery节点对象
Type:
- jQuery
el :jQuery
- Description:
控件对应的jQuery节点对象
- Inherited From:
控件对应的jQuery节点对象
Type:
- jQuery
items :Object
- Description:
子控件列表
- Inherited From:
子控件列表
Type:
- Object
Methods
active()
- Description:
激活窗体(使其位于最上层)
- Inherited From:
addTool(item)
- Description:
添加工具图标
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
item |
FineUI.Tool | 工具图标实例 |
close(eventopt, closeArgumentopt)
- Description:
关闭窗体(可以注册beforeclose事件并返回false来阻止窗体关闭)
- Inherited From:
Examples
直接关闭(不传任何参数):
FineUI.ui.window1.close();
在 iframe 子页面提交成功后,把"需要刷新"信号回传给父页面(通过closeArgument):
// 子页面(iframe 内部):
parent.FineUI.ui.window1.close(null, { refresh: true, newId: '101' });
// 父页面注册<code>close</code>事件接收:
FineUI.create({
type: 'Window', id: 'window1', iframe: true,
listeners: {
close: function (event, closeArgument) {
if (closeArgument && closeArgument.refresh) {
FineUI.ui.grid1.loadData([]);
}
}
}
});
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
event |
jQuery.Event |
<optional> |
事件对象(可选) |
closeArgument |
* |
<optional> |
关闭时传递给 close 事件回调的自定义参数(典型用法:iframe 子页面保存后通过此参数把数据回传给父页面) |
collapse()
- Description:
折叠面板(程序触发;启用
collapsible: true时有效)
- Inherited From:
Example
程序折叠侧栏:
FineUI.ui.panelSide.collapse();
expand()
- Description:
展开面板(与
collapse对应)
- Inherited From:
getButton(buttonId) → {FineUI.Button}
- Description:
获取消息框底部按钮
Parameters:
| Name | Type | Description |
|---|---|---|
buttonId |
string | 按钮标识符 |
Returns:
按钮实例
- Type
- FineUI.Button
getEncodedText(text) → {string}
- Description:
获取编码后的字符串
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
text |
string | 原始字符串 |
Returns:
编码后的字符串
- Type
- string
getFormFields() → {Array.<FineUI.Field>}
- Description:
获取容器内(深度遍历)所有表单字段实例(FineUI.Field的子类,如TextBox/NumberBox/DatePicker等)
- Inherited From:
Example
遍历表单全部字段,序列化为 name → value 的对象(用于自定义 ajax 提交;字段未声明name时改用id):
var values = {};
FineUI.ui.form1.getFormFields().forEach(function (field) {
values[field.name || field.id] = field.getValue();
});
// values 形如:{ tbxUserName: 'FineUIPro', numberAge: 30, ... }
Returns:
表单字段数组
- Type
- Array.<FineUI.Field>
getIFrameEl() → {jQuery}
- Description:
获取内联框架元素
- Inherited From:
Returns:
内联框架元素
- Type
- jQuery
getIFrameUrl() → {string}
- Description:
获取内联框架地址
- Inherited From:
Returns:
内联框架地址
- Type
- string
getIFrameWindow() → {Window}
- Description:
获取内联框架窗体对象
- Inherited From:
Returns:
内联框架窗体对象
- Type
- Window
getItem(value) → {FineUI.Component}
- Description:
获取子控件(按索引/标识符/匹配函数查找;通常配合
items无显式 id 的场景,比按FineUI.ui[id]更精准)
- Inherited From:
Examples
按索引取第一个子控件:
var firstChild = FineUI.ui.toolbar1.getItem(0);
按 id 取子控件:
var btn = FineUI.ui.toolbar1.getItem('btnSave');
按匹配函数找第一个匹配的子控件(函数对每项返回 true 即匹配):
var btn = FineUI.ui.toolbar1.getItem(function (item) {
return item.type === 'Button' && item.text === '保存';
});
Parameters:
| Name | Type | Description |
|---|---|---|
value |
number | string | function | 子控件索引、标识符或者匹配函数 |
Returns:
子控件实例
- Type
- FineUI.Component
getTitleTooltip() → {string}
- Description:
获取面板标题提示信息
- Inherited From:
Returns:
标题提示信息
- Type
- string
hasHScrollbar() → {boolean}
- Description:
是否存在水平滚动条
- Inherited From:
Returns:
是否存在水平滚动条
- Type
- boolean
hasVScrollbar() → {boolean}
- Description:
是否存在垂直滚动条
- Inherited From:
Returns:
是否存在垂直滚动条
- Type
- boolean
hidePopEl()
- Description:
隐藏容器内的所有弹出框
- Inherited From:
insertTool(insertIndex, item)
- Description:
插入工具图标
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
insertIndex |
number | 插入的位置 |
item |
FineUI.Tool | 工具图标实例 |
isCollapsed() → {boolean}
- Description:
是否处于折叠状态
- Inherited From:
Returns:
折叠状态
- Type
- boolean
isType(value) → {boolean}
- Description:
检测当前实例是否指定的控件类型
- Inherited From:
Example
grid1.isType('panel') // 返回true
grid1.isType('grid') // 返回true
Parameters:
| Name | Type | Description |
|---|---|---|
value |
Object | 控件类型 |
Returns:
如果当前实例是指定的控件类型,返回true;否则返回false
- Type
- boolean
maximize()
- Description:
最大化窗体
- Inherited From:
refreshIFrame()
- Description:
刷新内联框架
- Inherited From:
restore()
- Description:
还原窗体
- Inherited From:
setDraggable() → {boolean}
- Description:
设置窗体是否可以拖动
- Inherited From:
Returns:
是否可以拖动
- Type
- boolean
setIFrameUrl(url)
- Description:
设置内联框架地址
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
url |
string | 内联框架地址 |
setResizable() → {boolean}
- Description:
设置窗体是否可以改变大小
- Inherited From:
Returns:
是否可以改变大小
- Type
- boolean
setSplitDraggable() → {boolean}
- Description:
设置分隔条是否可以拖动
- Inherited From:
Returns:
是否可以拖动
- Type
- boolean
setTitleTooltip(tooltip)
- Description:
设置面板标题提示信息
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
tooltip |
string | 提示信息字符串 |
toggleCollapse()
- Description:
切换面板的折叠状态
- Inherited From:
triggerNO()
- Description:
程序触发"取消"按钮(自动调用消息框的
cancel回调并关闭)
triggerYES()
- Description:
程序触发"确认"按钮(自动调用消息框的
ok回调并关闭;用于测试自动化或者超时自动确认场景)
Example
5 秒后自动确认(场景:默认操作 + 倒计时关闭):
var msgbox = FineUI.create({
type: 'MessageBox', messageType: 'confirm', message: '5 秒后自动确认',
handler: function (event, buttonId) {
if (buttonId === 'ok') {
console.log('已确认');
}
}
});
setTimeout(function () {
msgbox.triggerYES();
}, 5000);
Events
beforeclose
- Description:
关闭窗体之前触发(返回false则阻止关闭窗体)
- Inherited From:
beforehide
- Description:
隐藏控件之前触发(返回false则取消隐藏操作)
- Inherited From:
beforeshow
- Description:
显示控件之前触发(返回false则取消显示操作)
- Inherited From:
close
- Description:
关闭窗体时触发
- Inherited From:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
event |
jQuery.Event | 事件对象 |
|
closeArgument |
* |
<optional> |
调用 |
collapse
- Description:
折叠面板时触发(启用
collapsible: true时;用户点击折叠图标或调用collapse()都会触发)
- Inherited From:
Example
侧栏折叠后让中央面板"伸开"覆盖空间:
FineUI.ui.panelSide.on('collapse', function () {
FineUI.ui.panelMain.setWidth(window.innerWidth);
});
Parameters:
| Name | Type | Description |
|---|---|---|
event |
jQuery.Event | 事件对象 |
dirtychange
- Description:
容器内的字段值改变时触发
- Inherited From:
expand
- Description:
展开面板时触发(与
collapse事件对应)
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
event |
jQuery.Event | 事件对象 |
hide
- Description:
隐藏控件时触发
- Inherited From:
iframeload
- Description:
内联框架加载完毕时触发(启用
iframe: true时;常用于和 iframe 内部脚本通讯)
- Inherited From:
Example
iframe 加载完成后给子页面注入参数:
FineUI.create({
type: 'Window', iframe: true, iframeUrl: '/detail.aspx',
listeners: {
iframeload: function () {
var iframeWin = this.getIFrameWindow();
iframeWin.someInitFunction({ userId: 101 });
}
}
});
layout
- Description:
布局控件时触发
- Inherited From:
maximize
- Description:
最大化窗体时触发
- Inherited From:
remove
- Description:
移除控件时触发(调用
remove()时,控件 DOM 被销毁之前触发;可用于清理外部资源 / 解绑全局事件)
- Inherited From:
render
- Description:
渲染控件时触发
- Inherited From:
resize
- Description:
面板尺寸改变时触发
- Inherited From:
restore
- Description:
还原窗体时触发
- Inherited From:
show
- Description:
显示控件时触发
- Inherited From:
splitdrag
- Description:
拖动分隔条时触发(拖动操作)
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
event |
jQuery.Event | 事件对象 |
windowmove
- Description:
拖动窗体时触发(拖动过程中持续触发)
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
event |
jQuery.Event | 事件对象 |
windowresize
- Description:
改变窗体大小时触发(拖动操作)
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
event |
jQuery.Event | 事件对象 |