FineUI

Namespace

FineUI

Description:
  • FineUI命名空间

Classes

Accordion
AccordionPane
Base
Button
ButtonGroup
Calendar
CheckBox
CheckBoxList
Component
Container
DataList
DatePicker
DropDownBox
DropDownList
Field
FileUpload
Form
Grid
GridColumn
GroupPanel
Hidden
HtmlEditor
HyperLink
Image
Label
LinkButton
Menu
MenuCheckBox
MenuItem
MenuItemBase
MenuSeparator
MessageBox
NumberBox
PagingToolbar
Panel
PanelBase
RadioButton
RadioButtonList
Tab
TabStrip
TextArea
TextBox
TimePicker
Tool
Toolbar
ToolbarFill
ToolbarItemBase
ToolbarSeparator
ToolbarText
Tree
TriggerBox
ViewPort
Window

Members

(static) KEY

Description:
  • 键盘按键代码

键盘按键代码

Methods

(static) addCSS(id, content, isCSSFile)

Description:
  • 向页面添加CSS内容或者引用CSS文件

Parameters:
Name Type Description
id string

键(防止重复添加相同的内容)

content string

CSS内容或者CSS文件网址

isCSSFile boolean

是否CSS文件

(static) addCommas(string) → {string}

Description:
  • 添加千分位分隔符

Parameters:
Name Type Description
string string

数字

Returns:

包含千分位分隔符的字符串

Type
string

(static) addDotSeparator(string, dotSeparator, commaSeparator) → {string}

Description:
  • 添加小数分隔符

Parameters:
Name Type Description
string string

数字

dotSeparator string

小数分隔符

commaSeparator string

千分位分隔符(如果为undefined,则不添加千分位分隔符)

Returns:

包含小数分隔符的字符串

Type
string

(static) addJS(id, content, isJSFile)

Description:
  • 向页面添加JS内容或者引用JS文件

Parameters:
Name Type Description
id string

键(防止重复添加相同的内容)

content string

JS内容或者JS文件网址

isJSFile boolean

是否JS文件

(static) addMainTab(tabstripInstance, options)

Description:
  • 添加选项卡

Parameters:
Name Type Description
tabstripInstance FineUI.TabStrip

选项卡面板实例

options Object

选项卡参数

Properties
Name Type Default Description
id string ''

选项卡标识符

iframeUrl string ''

选项卡中内联框架的地址(默认启用iframe)

title string ''

选项卡标题

icon string ''

选项卡标题图标

iconFont string ''

选项卡标题图标字体

refreshWhenExist boolean true

如果选项卡已存在,是否更新选项卡并刷新内联框架(默认值:true)

moveToEnd boolean true

将新增选项卡移到尾部(如果选项卡已存在,则不改变位置)(默认值:true)

actived boolean true

是否激活选项卡(默认值:true)

(static) addMainTabByHref(tabstripInstance, treeInstance, href, activedopt, moveToEndopt)

Description:
  • 添加选项卡(在树中查找拥有href的树节点)

Parameters:
Name Type Attributes Default Description
tabstripInstance FineUI.TabStrip

选项卡面板实例

treeInstance FineUI.Tree

树控件实例

href string

树节点的超链接网址

actived boolean <optional>
true

是否激活选项卡(默认为true)

moveToEnd boolean <optional>
true

将新增选项卡移到尾部(如果选项卡已存在,则不改变位置)(默认为true)

(static) alert(options)

Description:
  • 弹出提示对话框

Parameters:
Name Type Description
options Object

初始参数

Properties
Name Type Default Description
target string '_self'

显示对话框的目标位置(可选项为:_self, _parent, _top)

message string ''

消息正文

title string ''

标题文本(留空则使用默认标题)

messageIcon string 'information'

消息图标(可选项为:information, warning, question, error, success)

closable boolean true

是否可关闭

ok function

点击确认按钮时执行的回调函数

(static) beforeAjaxError(callback)

Description:
  • 注册 AJAX 回发失败回调函数。返回 false 则不执行默认错误提示。

    回调参数为 data、textStatus、xhr。data 是错误响应原文,网络错误与超时时为空字符串; textStatus 为 error、timeout 或 parsererror。xhr 与成功钩子同形态,无法获取 HTTP 状态时 status 为 0。 错误正文可能是 HTML、JSON 或空文本,页面应按自己的错误协议处理。

Example

自定义错误提示框

FineUI.beforeAjaxError(function (data, textStatus, xhr) {
	FineUI.alert('服务器返回错误!');
	return false;
});
Parameters:
Name Type Description
callback function

AJAX回发失败时执行的回调函数

(static) beforeAjaxSuccess(callback)

Description:
  • 注册 AJAX 回发成功回调函数。每次成功回发在应用响应前调用一次;返回 false 阻止整份响应应用。

    回调参数为 data、textStatus、xhr。Core 三种模式与 Java 的 data 为原始 JSON 文本,Pro 为响应脚本; 检查 JSON 响应时可自行 JSON.parse(data)。xhr 是兼容对象,提供 status、statusText、responseText 和响应头读取方法; responseText 保留传输正文,需要查看完整原文时可读取它。 textStatus 为 success。Pro、Core、Java 的普通首屏加载均不触发此钩子;它只处理 FineUI AJAX 回发。

Examples

Pro 页面跳转前弹出系统确认对话框

FineUI.beforeAjaxSuccess(function (data, textStatus, xhr) {
	// 通过返回的字符串,判断是否即将执行页面跳转
	if (data.indexOf('window.location.href=') === 0) {
		if (!window.confirm('是否执行页面跳转?')) {
			return false; // 继续留在当前页面
		}
	}
});

Core / Java 在严格 CSP 下异步确认跳转

FineUI.beforeAjaxSuccess(function (data, textStatus, xhr) {
    // 典型响应:{"commands":[{"type":"page.redirect","url":"/"}]}
    // find 在 commands 数组中找出跳转命令。
    var commands = JSON.parse(data).commands || [];
    var redirect = commands.find(function (command) {
        return command.type === 'page.redirect';
    });
    if (redirect) {
        var url = redirect.url;
        FineUI.confirm({
            message: '是否执行页面跳转?',
            ok: function () {
                window.location.assign(url);
            }
        });
        return false;
    }
});
Parameters:
Name Type Description
callback function

回发成功处理前执行的回调函数

(static) confirm(options)

Description:
  • 弹出确认对话框

Parameters:
Name Type Description
options Object

初始参数

Properties
Name Type Default Description
target string '_self'

显示对话框的目标位置(可选项为:_self, _parent, _top)

message string ''

消息正文

title string ''

标题文本(留空则使用默认标题)

messageIcon string 'question'

消息图标(可选项为:information, warning, question, error, success)

closable boolean true

是否可关闭

ok function

点击确认按钮时执行的回调函数

cancel function

点击取消按钮时执行的回调函数

(static) cookie(key, value, options)

Description:
  • 新增或者修改Cookie

Parameters:
Name Type Description
key string

键

value string

值

options Object

参数

Properties
Name Type Default Description
path string '/'

Cookie保存的网站路径(默认为网站根目录)

expires number

过期时间(单位:天;留空则为会话Cookie,浏览器关闭时自动过期)

(static) customEvent(eventName, eventArgumentsopt)

Description:
  • 触发页面级自定义业务事件,由后台 Page_CustomEvent 接收

    适用于 FineUI.Pro、FineUI.Core RazorForms 和 FineUI.Java;纯 JavaScript 构建及 Core MVC / RazorPages 不使用这个入口。 只需事件名和业务参数时使用本函数;需要加载提示、临时禁用、完成回调等请求选项时,使用 FineUI.doPostBack。

    参数与后台读取

    事件名标识要执行的业务操作。多个相关字段放在一个普通对象中,集合直接使用数组;框架负责 JSON 序列化和 URL 编码, 不要自行 JSON.stringify、encodeURIComponent 或拼接“事件名$参数”。字符串中的 $、+、%、中文和换行会完整保留,0 和 false 也会作为明确参数发送。

    后台事件名业务参数
    C#(Pro / Core RazorForms)e.EventName字符串:e.EventArguments;对象:e.EventArgumentsAsJObject;数组:e.EventArgumentsAsJArray
    Javae.getEventName()e.getArgument() 取得字符串;对象和数组取得 JSON 文本后,使用应用自己的 JSON 工具解析

    表单输入和当前控件状态会自动随回发提交,无需在第二个参数中重复复制。只有客户端临时计算等附加数据才需要显式传递。 自定义事件不会自动验证表单,需要时先调用 F.validateForm;普通标量在后台按字符串读取,再按业务类型转换。

    Pro 旧写法中第二个布尔参数曾表示是否验证表单;以事件名为首参的新写法中,布尔值只表示业务参数。 业务代码不要借 eventTarget 或手工拼接内置事件格式来调用普通控件事件。

    相关示例与文档

Examples

不带参数:后台直接读取当前控件状态

F.customEvent('Refresh');

字符串参数:特殊字符无需自行编码

F.customEvent('SelectCustomer', '客户$105+杭州');

对象参数:一次发送多个相关字段

F.customEvent('DeleteRows', {
    rowIDs: ['102', '103'],
    source: 'Grid1'
});

数组参数:集合可以直接发送

F.customEvent('DeleteRows', ['102', '103']);

数字和布尔值:0 与 false 都会保留

F.customEvent('SetQuantity', 0);
F.customEvent('SetEnabled', false);

需要表单验证时先验证;返回 false 避免继续执行按钮默认动作(Core RazorForms / Java)

function onSaveClick(event) {
    if (!F.validateForm('Form1', { target: '_top' })) {
        return false;
    }
    F.customEvent('Save');
    return false;
}
Parameters:
Name Type Attributes Description
eventName string

非空业务事件名,不能包含 $

eventArguments string | number | boolean | Object | Array | null <optional>

可选业务参数;省略、null 或空字符串表示不带参数

(static) doPostBack(options)

Description:
  • 发起回发请求,可设置业务参数、加载提示、临时禁用控件和单次回调

    只发送事件名和业务参数时,优先使用 FineUI.customEvent;需要完整请求选项时使用本函数。 页面级自定义事件由后台 Page_CustomEvent 接收,普通控件事件仍使用标签或服务端代码声明。

    产品与开发模式

    产品 / 模式请求入口与选项默认控件响应
    FineUI.Pro向当前 WebForms 页面发送 eventName / eventArgument;可用 enableAjax 切换整页提交。不支持 url、fields、params。响应脚本
    FineUI.Core RazorForms页面事件不填 url,提交到当前完整网址并保留查询参数;控件状态和文件自动收集,可用 params 增加命名字段。JSON
    FineUI.Core MVC / RazorPages必须提供 Action / Handler 的 url,用 fields 收集表单、params 增加参数;不使用 Page_CustomEvent。JSON
    FineUI.Java向当前页面发送 eventName / eventArgument,自动收集控件状态和文件。不支持 url、fields、params;eventTarget 非空时仅同步状态。JSON

    纯 JavaScript 构建不提供本函数。以上模式的 AJAX 请求都支持加载提示、disableControl 和 complete / success / error。 普通提交与文件上传共用 fetch;有已选择且带文件名的有效文件时使用 FormData,无需隐藏 iframe。 Pro 设置 enableAjax: false 后使用整页提交,不执行这些 AJAX 回调。

    本函数用于 FineUI 控件回发,Core 三种模式始终处理控件 JSON 响应。独立业务 JSON 或文本接口直接使用原生 fetch 或 jQuery.ajax。 RazorForms 的控件交互必须经过本页事件,不能用另一个 MVC / RazorPages UI 接口修改本页控件。

    回调顺序与响应处理

    1. 收到响应后先调用 complete,成功和失败都会调用。
    2. 成功时依次调用 success、F.beforeAjaxSuccess,再应用响应;失败时依次调用 error、F.beforeAjaxError,再显示默认错误提示。
    3. 框架负责恢复临时禁用状态、清理加载提示;回调中断不会跳过清理。

    上述回调严格返回 false 时,停止该分支的后续处理。complete 和 success 均早于控件更新,适合收起动画或检查响应, 不能用来读取更新后的控件。需要在响应更新后运行代码时,由后台追加具名客户端函数调用。 回调按同步函数执行,返回的 Promise 不会被等待;不要依靠 async 回调延后响应应用。

    相关示例与文档

Examples

页面级事件:验证表单、显示局部动画,请求结束后收起动画(Core RazorForms / Java)

function onSubmitClick(event) {
    var form = F('Form1');
    if (!F.validateForm('Form1', { target: '_top' })) {
        return false;
    }

    form.showLoading();
    F.doPostBack({
        eventName: 'Form1_Submit',
        disableControl: 'btnSubmit',
        enableAjaxLoading: false,
        complete: function (data, textStatus, xhr) {
            // 无论成功、错误还是超时,都要收起本次表单动画。
            form.hideLoading();
        }
    });
    return false;
}

Core RazorForms:附加命名字段,供后台 [BindProperty] 属性 ReportType 接收

F.doPostBack({
    eventName: 'GenerateReport',
    params: {
        ReportType: 'monthly'
    }
});

Core MVC / RazorPages:收集表单并向明确的 Action / Handler 发送请求

F.doPostBack({
    url: '/Orders/Save',
    fields: 'Form1',
    params: {
        source: 'toolbar'
    }
});
// RazorPages 可将 url 换成 '/Orders/Edit?handler=Save'。
// 接口返回 FineUI JSON 控件响应,由框架更新页面。

单次错误处理:接管 403 提示,其余错误继续使用默认处理

F.doPostBack({
    eventName: 'Save',
    error: function (data, textStatus, xhr) {
        if (xhr.status === 403) {
            F.alert('当前账号无权保存此记录。');
            return false;
        }
    }
});
Parameters:
Name Type Description
options Object

请求选项,按上面的产品与模式表选择

Properties
Name Type Attributes Description
eventName string <optional>

页面级自定义事件名,不能为空或包含 $;与 eventArgument 配合使用,无需拼接回发字符串

eventArgument string | number | boolean | Object | Array | null <optional>

业务参数。数组和普通对象自动转为 JSON,0 与 false 保留;省略、null 或空字符串表示不带参数

url string <optional>

控件回发地址。RazorForms 页面事件省略;MVC / RazorPages 必须提供 Action / Handler 地址

fields string <optional>

需要收集的控件 ID,以逗号分隔。指定容器时收集其中的表单字段和文件;RazorForms 本页回发会自动收集控件状态

params Object <optional>

以字段名为键的附加表单参数,可用于服务端模型绑定;与 eventArgument 中的业务对象分别传递

complete F_doPostBack_callback <optional>

成功或失败时首先调用;严格返回 false 跳过后续回调、全局钩子、控件更新和默认错误提示

success F_doPostBack_callback <optional>

成功且响应尚未应用时调用;严格返回 false 跳过全局成功钩子和响应应用

error F_doPostBack_callback <optional>

失败时调用;严格返回 false 跳过全局错误钩子和默认错误提示

disableControl string | boolean <optional>

请求期间临时禁用的控件 ID,false 或空字符串表示不禁用;页面自定义回发默认不禁用控件

enableAjax boolean <optional>

是否使用 AJAX;仅 Pro 支持,未指定时沿用页面配置

enableAjaxLoading boolean <optional>

是否显示本次请求的加载提示,未指定时沿用页面配置

ajaxLoadingType string <optional>

提示类型:default 或 mask

ajaxLoadingText string <optional>

default 提示的文字

ajaxLoadingMaskText string <optional>

mask 提示的文字

showAjaxLoadingMaskText boolean <optional>

mask 提示是否显示文字

eventTarget string <optional>

框架内部控件事件的目标;页面级业务事件不设置此项,不用它手工触发普通控件事件

(static) endsWith(value, source) → {boolean}

Description:
  • 判断一个字符串是否以某个字符串结束

Parameters:
Name Type Description
value string

字符串

source string

源字符串

Returns:

如果是则返回true,否则返回false

Type
boolean

(static) formatDate(value, format) → {Date}

Description:
  • 将日期对象转换为字符串

Example
日期格式规则请参考:FineUI.parseDate
Parameters:
Name Type Description
value Date

日期对象

format string

日期格式化字符串(标准的C#格式化字符串,比如:'yyyy-MM-dd')

Returns:

日期字符串

Type
Date

(static) formatNumber(number, format, trimZeroopt) → {string}

Description:
  • 将数字格式化为字符串

Example
// 标准格式(小数位固定,不足补零)
FineUI.formatNumber(12345.6789, 'N2');    // "12,345.68"
FineUI.formatNumber(12345.6789, 'F2');    // "12345.68"
FineUI.formatNumber(0.1234, 'P2');        // "12.34%"
FineUI.formatNumber(12345.6789, 'E2');    // "1.23E+4"
FineUI.formatNumber(123, 'D5');           // "00123"

// 尾零省略(第三个参数传入 true)
FineUI.formatNumber(8500,    'N2', true);   // "8,500"    (原本 "8,500.00",尾零省略)
FineUI.formatNumber(8500.1,  'N2', true);   // "8,500.1"  (原本 "8,500.10",尾零省略)
FineUI.formatNumber(8500.75, 'N2', true);   // "8,500.75" (无尾零,保持不变)
FineUI.formatNumber(5,       'F2', true);   // "5"        (原本 "5.00",尾零省略)
FineUI.formatNumber(0.5,     'P2', true);   // "50%"      (原本 "50.00%",尾零省略)
FineUI.formatNumber(0.123,   'P2', true);   // "12.3%"    (原本 "12.30%",尾零省略)
FineUI.formatNumber(10000,   'E2', true);   // "1E+4"     (原本 "1.00E+4",尾零省略)
FineUI.formatNumber(15000,   'E2', true);   // "1.5E+4"   (原本 "1.50E+4",尾零省略)
Parameters:
Name Type Attributes Description
number number

要格式化的数字(整数或浮点数)

format string

数字格式字符串(C#风格,如 'N2'、'F2'、'P2'、'E2'、'D5')

trimZero string | boolean <optional>

是否去除尾零(可选,传入 true 或 'true')。 当启用时,对标准格式(N/F/P/E)的结果自动去除小数尾部多余的零。 例如:formatNumber(8500, 'N2', true) → "8,500"(而非 "8,500.00")

千分位格式(Number Format)

  • 'N' : 千分位格式,默认2位小数 (例: 12345.6789 → "12,345.68")
  • 'N0' : 千分位格式,无小数位 (例: 12345.6789 → "12,346") - 四舍五入到整数
  • 'N2' : 千分位格式,2位小数 (例: 12345.6789 → "12,345.68")

定点数格式(Fixed-point Format)

  • 'F' : 定点数格式,默认2位小数 (例: 12345.6789 → "12345.68")
  • 'F0' : 定点数格式,无小数位 (例: 12345.6789 → "12346") - 四舍五入到整数
  • 'F2' : 定点数格式,2位小数 (例: 12345.6789 → "12345.68")

百分比格式(Percent Format)

  • 'P' : 百分比格式,默认2位小数 (例: 0.1234 → "12.34%")
  • 'P0' : 百分比格式,无小数位 (例: 0.1234 → "12%") - 四舍五入到整数百分比
  • 'P2' : 百分比格式,2位小数 (例: 0.1234 → "12.34%")

科学计数法格式(Scientific Format)

  • 'E' : 科学计数法,默认6位小数 (例: 12345.6789 → "1.234568E+4")
  • 'E2' : 科学计数法,2位小数 (例: 12345.6789 → "1.23E+4")
  • 'E4' : 科学计数法,4位小数 (例: 12345.6789 → "1.2346E+4")

十进制整数格式(Decimal Integer Format)

  • 'D' : 十进制整数格式,默认不填充 (例: 12345.6789 → "12345") - 截断小数部分
  • 'D5' : 十进制整数格式,填充到5位 (例: 123 → "00123")
  • 'D8' : 十进制整数格式,填充到8位 (例: 12345 → "00012345")

尾零省略(第三个参数 trimZero)

在标准格式字符串的基础上,传入第三个参数 true,自动去除结果中小数部分的尾部零。 例如:formatNumber(8500, 'N2', true) → "8,500"(而非 "8,500.00")

在表格列中,对应 C# 属性 TrimZero="true",JS 写法 fieldFormat: 'N2', trimZero: true。

Returns:

格式化后的字符串

Type
string

(static) formatString(form, …param)

Description:
  • 格式化字符串

Parameters:
Name Type Attributes Description
form string

需要格式化的字符串

param string <repeatable>

参数,对应格式字符串中的 {0}, {1}, {2}...

(static) getActiveWindow() → {FineUI.Window}

Description:
  • 获取当前激活的窗体对象

Returns:

窗体对象(其 window 属性表示窗体所在的页面)

Type
FineUI.Window

(static) getHidden(fieldId) → {string}

Description:
  • 获取隐藏字段的值()

Parameters:
Name Type Description
fieldId string

节点ID

Returns:

隐藏字段的值

Type
string

(static) getType(typeName) → {object}

Description:
  • 获取类型字符串对应的类型(例如从字符串 'tabstrip' 获取类型 FineUI.TabStrip)

Parameters:
Name Type Description
typeName string

类型字符串

Returns:

类型

Type
object

(static) hasHScrollbar(el) → {boolean}

Description:
  • 是否存在水平滚动条

Parameters:
Name Type Description
el jQuery

节点

Returns:

是否存在水平滚动条

Type
boolean

(static) hasVScrollbar(el) → {boolean}

Description:
  • 是否存在垂直滚动条

Parameters:
Name Type Description
el jQuery

节点

Returns:

是否存在水平滚动条

Type
boolean

(static) htmlDecode(value) → {string}

Description:
  • HTML解码

Parameters:
Name Type Description
value string

输入值

Returns:

解码后的值

Type
string

(static) htmlEncode(value) → {string}

Description:
  • HTML编码

Parameters:
Name Type Description
value string

输入值

Returns:

编码后的值

Type
string

(static) init(options)

Description:
  • 初始化全局配置,应在创建控件之前调用。

Parameters:
Name Type Description
options object

全局配置

Properties
Name Type Default Description
gridStrictColumnIdValidation boolean false

是否严格检查同一表格整棵列树的列标识符。默认对重复值只在控制台警告并保留原值;开启后抛出配置异常,错误码为 FINEUI_DUPLICATE_COLUMN_ID。分组列、叶子列和隐藏列均参与检查,不提供表格实例级覆盖;FineUI.Java 始终严格检查,此开关不能关闭 Java 的校验。

(static) initTreeTabStrip(treeMenu, mainTabStrip, options)

Description:
  • 初始化官网示例框架(左侧树与右侧选项卡面板交互)

Example
FineUI.initTreeTabStrip(FineUI.ui.Tree1, FineUI.ui.TabStrip1, {
    maxTabCount: 10,
    maxTabMessage: '请先关闭一些选项卡(最多允许打开 10 个)!'
});
Parameters:
Name Type Description
treeMenu FineUI.Tree

左侧树实例

mainTabStrip FineUI.TabStrip

选项卡面板实例

options Object

可选参数

Properties
Name Type Default Description
updateHash boolean true

切换Tab时,是否更新地址栏Hash值(默认值:true)

refreshWhenExist boolean true

如果选项卡已存在,是否更新选项卡并刷新内联框架(默认值:true)

refreshWhenTabChange boolean false

切换选项卡时,是否刷新内部IFrame

maxTabCount number

最大允许打开的选项卡数量

maxTabMessage string

超过最大允许打开选项卡数量时的提示信息

beforeNodeClick F_initTreeTabStrip_beforeNodeClick

节点点击事件之前执行(返回false则不执行点击事件)

beforeTabAdd F_initTreeTabStrip_beforeTabAdd

添加选项卡之前执行(返回false则不添加选项卡)

singleTabId string

单标签页模式下的标签页标识符(留空即为多标签页模式)

moveToEnd boolean true

将新增选项卡移到尾部(如果选项卡已存在,则不改变位置)(默认为true)

compactHash boolean false

应用部署在子路径时,Hash 是否省略 F.baseUrl;读取时自动补回以恢复内嵌页面

(static) isARR(value) → {boolean}

Description:
  • 测试对象是否为数组

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isBOO(value) → {boolean}

Description:
  • 测试对象是否为布尔型

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isDAT(value) → {boolean}

Description:
  • 测试对象是否为日期对象

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isELE(value) → {boolean}

Description:
  • 测试对象是否为DOM节点元素

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isEMP(value) → {boolean}

Description:
  • 测试对象是否为空(undefined, null 或者 空字符串)

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isEOBJ(value) → {boolean}

Description:
  • 测试对象是否为空对象(不包含任何属性)

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isFUN(value) → {boolean}

Description:
  • 测试对象是否为函数

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isNAN(value) → {boolean}

Description:
  • 测试对象是否为NaN

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isNUM(value) → {boolean}

Description:
  • 测试对象是否为数字

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isPOBJ(value) → {boolean}

Description:
  • 测试对象是否为纯粹对象(通过 {} 或者 new Object 创建的对象)

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isSTR(value) → {boolean}

Description:
  • 测试对象是否为字符串

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) isUND(value) → {boolean}

Description:
  • 测试对象是否为undefined或者null

Parameters:
Name Type Description
value object

需要测试的对象

Returns:

测试结果

Type
boolean

(static) noAnimation(fn)

Description:
  • 回调函数中不进行动画操作

Parameters:
Name Type Description
fn function

回调函数

(static) noConflict()

Description:
  • 释放window.F命名空间,以便其他脚本可以使用它

(static) noEvent(fn)

Description:
  • 回调函数中不触发事件

Parameters:
Name Type Description
fn function

回调函数

(static) noLayout(fn)

Description:
  • 回调函数中不进行布局操作

Parameters:
Name Type Description
fn function

回调函数

(static) noValidate(fn)

Description:
  • 回调函数中不验证表单字段

Parameters:
Name Type Description
fn function

回调函数

(static) notify(options)

Description:
  • 弹出通知对话框

Parameters:
Name Type Description
options Object

初始参数

Properties
Name Type Default Description
target string '_self'

显示对话框的目标位置(可选项为:_self, _parent, _top)

message string ''

消息正文

title string ''

标题文本(留空则使用默认标题)

messageIcon string 'question'

消息图标(可选项为:information, warning, question, error, success)

closable boolean true

是否可关闭

hide function

对话框隐藏时执行的回调函数

modal boolean false

是否为模式对话框

draggable boolean true

是否可拖动

header boolean true

是否显示标题栏

showLoading boolean false

是否显示正在加载图标

positionX string 'right'

横坐标的位置(可选项为:left, center, right)

positionY string 'bottom'

纵坐标的位置(可选项为:top, center, bottom)

displayMilliseconds number 0

自动消失之前显示的秒数(0-不消失)

displayProgress boolean true

是否显示倒计时进度条(仅在 displayMilliseconds > 0 时生效;可通过 F.init({messageBoxDisplayProgress: false}) 全局关闭)

(static) parseDate(value, format) → {Date}

Description:
  • 将字符串转换为日期对象

Examples
// 基本日期解析
FineUI.parseDate('2023-12-25', 'yyyy-MM-dd');        
// 返回: 2023年12月25日

FineUI.parseDate('25/12/2023', 'dd/MM/yyyy');        
// 返回: 2023年12月25日

FineUI.parseDate('Dec 25, 2023', 'MMM dd, yyyy');    
// 返回: 2023年12月25日
// 日期时间解析
FineUI.parseDate('2023-12-25 14:30:45', 'yyyy-MM-dd HH:mm:ss');
// 返回: 2023年12月25日 14:30:45

FineUI.parseDate('12/25/2023 02:30', 'MM/dd/yyyy hh:mm');
// 返回: 2023年12月25日 14:30:00

FineUI.parseDate('December 25, 2023', 'MMMM dd, yyyy');
// 返回: 2023年12月25日
// 短格式和缩写格式
FineUI.parseDate('23-12-25', 'yy-M-d');              
// 返回: 2023年12月25日

FineUI.parseDate('12/25/23', 'M/d/yy');              
// 返回: 2023年12月25日
// 时间格式解析
FineUI.parseDate('14:30', 'HH:mm');                  
// 返回: 今天14:30:00

FineUI.parseDate('14:30:45', 'H:m:s');               
// 返回: 今天14:30:45
Parameters:
Name Type Description
value string

要解析的日期字符串

format string

日期格式化字符串,用于指定输入字符串的格式(比如:'yyyy-MM-dd')

日期部分

  • d - 月中的某一天,一位数的日期没有前导零 (1-31)
  • dd - 月中的某一天,一位数的日期有一个前导零 (01-31)
  • ddd - 周中某天的缩写名称 (Mon, Tue, Wed等)
  • dddd - 周中某天的完整名称 (Monday, Tuesday, Wednesday等)

月份部分

  • M - 月份数字,一位数的月份没有前导零 (1-12)
  • MM - 月份数字,一位数的月份有一个前导零 (01-12)
  • MMM - 月份的缩写名称 (Jan, Feb, Mar等)
  • MMMM - 月份的完整名称 (January, February, March等)

年份部分

  • yy - 不包含纪元的年份,两位数字 (00-99)
  • yyyy - 包括纪元的四位数的年份 (0001-9999)

时间部分

  • h - 12小时制的小时,一位数的小时数没有前导零 (1-12)
  • hh - 12小时制的小时,一位数的小时数有前导零 (01-12)
  • H - 24小时制的小时,一位数的小时数没有前导零 (0-23)
  • HH - 24小时制的小时,一位数的小时数有前导零 (00-23)
  • m - 分钟,一位数的分钟数没有前导零 (0-59)
  • mm - 分钟,一位数的分钟数有一个前导零 (00-59)
  • s - 秒,一位数的秒数没有前导零 (0-59)
  • ss - 秒,一位数的秒数有一个前导零 (00-59)
Returns:

解析后的日期对象

Type
Date

(static) parseJSON(value) → {Object}

Description:
  • 将JSON字符串转换为JavaScript对象

Parameters:
Name Type Description
value string

JSON字符串

Returns:

JavaScript对象

Type
Object

(static) progressHtml(value, options)

Description:
  • 生成进度条HTML片段

Parameters:
Name Type Description
value Object

初始值

options Object

初始参数

Properties
Name Type Default Description
height number

进度条的高度

textVisible boolean false

是否显示进度条文本

textInside boolean false

是否将进度条文本显示在进度条内部

(static) prompt(options)

Description:
  • 弹出输入对话框

Parameters:
Name Type Description
options Object

初始参数

Properties
Name Type Default Description
target string '_self'

显示对话框的目标位置(可选项为:_self, _parent, _top)

message string ''

消息正文

title string ''

标题文本(留空则使用默认标题)

messageIcon string 'question'

消息图标(可选项为:information, warning, question, error, success)

closable boolean true

是否可关闭

ok function

点击确认按钮时执行的回调函数(回调函数的第一个参数为用户输入值)

cancel function

点击取消按钮时执行的回调函数(回调函数的第一个参数为用户输入值)

multiLine boolean false

是否显示多行输入框

multiLineHeight number

多行输入框的高度

defaultValue string ''

输入框的缺省值

required boolean false

输入框是否为必填项

(static) queryString(name, urlopt) → {string}

Description:
  • 获取URL中的参数值

Parameters:
Name Type Attributes Description
name string

参数名

url string <optional>

在指定URL中查找(留空在当前页面URL中查找)

Returns:

URL中参数名对应的值

Type
string

(static) rateEvents(container, callback)

Description:
  • 注册评分事件

Parameters:
Name Type Description
container jQuery

评分容器

callback F_rateEvents_callback

评分改变的回调函数

(static) rateHtml(value, options)

Description:
  • 生成评分HTML片段

Parameters:
Name Type Description
value Object

初始值

options Object

初始参数

Properties
Name Type Default Description
allowClear boolean true

是否允许通过点击来清除评分

allowHalf boolean false

是否允许半星评分

iconFont string ''

评分图标字体

iconFontCls string ''

自定义评分图标字体的样式类

character string ''

自定义评分字符(比如用字母'A'代替默认的五角星图标)

count number 5

评分图标的个数

readonly boolean false

是否只读

textVisible boolean false

是否显示评分文本

textRenderer function | string

自定义评分文本的渲染函数,也可以填全局函数的名字(服务端下发时只能是名字)

(static) rawHtml(value, …param) → {object}

Description:
  • 声明一段“可信 HTML”。控件的文本类属性(如 text、title、tooltip 等)默认会做 HTML 转义(防 XSS), 当你确信某段 HTML 可信、需要原样输出(不转义)时,用它包裹后赋给对应属性即可。 详见文档:安全策略(用 RawHtml / F.rawHtml 安全输出 HTML)

Example
// 用法1:创建控件时,把带 HTML 的文本声明为可信,原样输出(不转义)
F.create({ type: 'Button', text: F.rawHtml('<i class="f-icon f-iconfont f-iconfont-add"></i> 新增') });

// 用法2:运行时调用控件方法更新文本,同样用 F.rawHtml 包裹
F.ui.label1.setText(F.rawHtml('<b>已保存</b>'));

// 用法3:菜单项、面板标题等文本类属性通用
F.create({ type: 'MenuItem', text: F.rawHtml('<span class="hot">热门</span> 推荐') });

// 特例:表格列渲染函数 renderer 的返回值本就原样输出(不转义),故【无需】用 F.rawHtml 包裹,
// 直接返回 HTML 字符串即可;因为不转义,其中若含用户数据务必先自行 F.htmlEncode
F.create({ type: 'Grid', columns: [{
    field: 'status',
    renderer: function (value) { return '<span class="tag">' + F.htmlEncode(value) + '</span>'; }
}] });

// 用法5:模板 + 用户数据——先对用户数据 HTML 编码,再用 {0}、{1} 占位放进可信 HTML(防 XSS)
F.rawHtml('<b>{0}</b>:{1}', F.htmlEncode(userName), F.htmlEncode(userInput));

// 反例:不要把用户输入直接包成可信 HTML(会导致 XSS)
// F.create({ type: 'Label', text: F.rawHtml(userInput) });  // ❌ 危险
Parameters:
Name Type Attributes Description
value string

可信的 HTML 字符串;作为格式字符串时对应 {0}, {1}, {2}...

param string <repeatable>

可选的格式化参数

Returns:

可信 HTML 包装对象

Type
object

(static) ready(callback)

Description:
  • 注册页面渲染完毕回调函数

Parameters:
Name Type Description
callback function

页面加载完毕时执行的回调函数

(static) removeCommas(string) → {string}

Description:
  • 移除千分位分隔符

Parameters:
Name Type Description
string string

数字

Returns:

不包含千分位分隔符的字符串

Type
string

(static) removeCookie(key, options)

Description:
  • 删除Cookie

Parameters:
Name Type Description
key string

键

options Object

参数

Properties
Name Type Default Description
path string '/'

Cookie保存的网站路径(默认为网站根目录)

(static) removeDotSeparator(string, dotSeparator, commaSeparator) → {string}

Description:
  • 移除小数分隔符

Parameters:
Name Type Description
string string

数字

dotSeparator string

小数分隔符

commaSeparator string

千分位分隔符(如果为undefined,则表示输入的数字不包含千分位分隔符)

Returns:

不包含小数分隔符的字符串

Type
string

(static) removeHidden(fieldId)

Description:
  • 删除隐藏字段()

Parameters:
Name Type Description
fieldId string

节点ID

(static) reset(containerId)

Description:
  • 重置容器内的全部表单字段

Parameters:
Name Type Description
containerId string

容器标识符(留空则重置页面上的全部表单字段)

(static) resolveUrl(url) → {string}

Description:
  • 将「相对 Web 根/子应用根」的路径解析为客户端可用的完整 URL。 内部基于 FineUI.baseUrl 拼接,调用者无需关心 baseUrl 是否以 / 结尾,也无需关心页面部署在站点根还是子目录。 绝对 URL(http(s):// 、协议相对 // 、data:、blob: 等)原样返回;否则去掉前导的 ~ 和 / 后拼到 baseUrl 之后。

Parameters:
Name Type Description
url string

相对路径(推荐 /res/xxx 形式;~/res/xxx 或 res/xxx 结果相同)或绝对 URL

Returns:

客户端可用的完整 URL

Type
string

(static) setHidden(fieldId, fieldValue)

Description:
  • 设置隐藏字段的值()

Parameters:
Name Type Description
fieldId string

节点ID

fieldValue string

设置的值

(static) smartLayout(fn)

Description:
  • 回调函数执行完毕后再进行布局操作

Parameters:
Name Type Description
fn function

回调函数

(static) startsWith(value, source) → {boolean}

Description:
  • 判断一个字符串是否以某个字符串开头

Parameters:
Name Type Description
value string

字符串

source string

源字符串

Returns:

如果是则返回true,否则返回false

Type
boolean

(static) toJSON(value) → {string}

Description:
  • 将JavaScript对象转换为JSON字符串

Parameters:
Name Type Description
value Object

JavaScript对象

Returns:

JSON字符串

Type
string

(static) ui(options) → {FineUI.Component}

Description:
  • 创建控件实例

Parameters:
Name Type Description
options object

初始参数

Returns:

控件实例

Type
FineUI.Component

(static) urlDecode(url) → {string}

Description:
  • URL解码

Parameters:
Name Type Description
url string

输入值

Returns:

解码后的值

Type
string

(static) urlEncode(url) → {string}

Description:
  • URL编码

Parameters:
Name Type Description
url string

输入值

Returns:

编码后的值

Type
string

(static) validateForm(formId, optionsopt) → {boolean}

Description:
Example

验证一个表单:

if (FineUI.validateForm('form1')) {
	FineUI.alert('表单验证通过');
}
Parameters:
Name Type Attributes Description
formId string

需要验证的表单标识符

options Object <optional>

可选参数

Properties
Name Type Default Description
target string '_self'

验证失败时提示对话框的弹出位置(可选项为:_self, _parent, _top)

messageBox boolean true

验证失败时是否弹出提示对话框

messageBoxPlain boolean false

提示对话框是否使用简洁按钮样式

Returns:

是否验证通过

Type
boolean

(static) validateForms(formIds, optionsopt) → {boolean}

Description:
  • 验证多个表单,验证失败时弹出提示对话框并把焦点定位到第一个非法字段。

    大多数场景不需要手工调用:按钮、工具图标、菜单项、链接按钮都有 validateForm / validateForms 属性,点击时会自动验证、不通过就不再执行后续逻辑 (见 FineUI.Button)。本方法用于没有控件可挂的场景,例如自定义回发前的手工校验。

Examples

验证两个表单,失败时用简洁样式的提示框:

if (FineUI.validateForms(['form1', 'form2'], { messageBoxPlain: true })) {
	// 全部通过后才做的事
}

提示框弹到顶层窗口(本页处于 IFrame 中时常用):

FineUI.validateForms(['form1'], { target: '_top' });

只想拿验证结果、不弹提示框:

if (!FineUI.validateForms(['form1'], { messageBox: false })) {
	// 自行处理
}
Parameters:
Name Type Attributes Description
formIds Array.<string>

需要验证的表单标识符数组

options Object <optional>

可选参数

Properties
Name Type Default Description
target string '_self'

验证失败时提示对话框的弹出位置(可选项为:_self, _parent, _top)

messageBox boolean true

验证失败时是否弹出提示对话框

messageBoxPlain boolean false

提示对话框是否使用简洁按钮样式

Returns:

是否全部验证通过

Type
boolean

(static) windowResize(fn)

Description:
  • 注册页面大小改变事件(延迟 500 毫秒触发)

Parameters:
Name Type Description
fn function

回调函数