用户通过自定义视图组件可以自己定义自己的控件。
自定义控件示例:
1、新建一个自定义视图组件
选择对应的业务组件BC,自定义HTC路径及名称(或JS对象类名称)选项处手动填写UCML.UL

2、在BPO上添加一个JScript操作函数
前提是BPO上引用好相应的BC和VC,然后选中BPO右键添加一个JScript操作函数,如下图,无需设置函数名称,直接写代码:

下文代码为自定义一个新闻列表控件,输出无序列表(ul),代码如下:
//1.定义类对象
UCML.UL = function (id) {
this.dd = "XM"; //定义显示的字段名称
UCML.UL.superclass.constructor.call(this, id); //必须调用父类初始化
}
//2.继承父类
UCML.extend(UCML.UL, UCML.Applet, {
haveMenu: true,
onRender: function () {
//绘制控件
this.ok();
}, ok: function () {
this.el.html("新闻标题");
},
loadData: function () {
//获得数据,绘制数据显示方式,this.dataTable为当前BCBase
for (var i = 0; i < this.dataTable.getRecordCount(); i++) {
this.dataTable.SetIndexNoEvent(i);
//获得字段的值并显示在li中
this.el.append("<li>" + this.dataTable.getFieldValue(this.dd) + "</li>");
}
}, bindEvents: function () {
//绑定控件事件
UCML.Applet.superclass.bindEvents.call(this);
this.dataTable.on("onLoad", this.loadData, this);
},
onMenuReady: function () {
var menu = new UCML.Menu();
menu.addSeparator();
menu.addMenuItem("cmd_OutExcel", "导出数据");
menu.addMenuItem("cmd_AllOutExcel", "导出全部");
menu.addMenuItem("cmd_Refresh", "刷新数据");
menu.addMenuItem("cmd_ConfigColumns", "列配置");
this.menu = menu;
}
});3、生成编译BPO
页面效果:

评论
暂无评论!