1.3.4 动态表单 - 数据绑定
金蝶云社区-云小爱
云小爱
1人赞赏了该文章 6,537次浏览 未经作者许可,禁止转载编辑于2014年04月02日 17:07:41

数据绑定 BeforeBindData 绑定数据前事件。该插件可以在数据绑定前对数据进行处理,对数据修改不会被状态管理器记录。例如:单据插件中根据类型增加分录行。


[tr][td]C#
[td]


[tr][td=2,1]public override void BeforeBindData(EventArgs e){ base.BeforeBindData(e); //基础资料 if (_modelTypeId == ElementType.ELEMENTTYPE_BASE.ToString()) { this.View.Model.CreateNewEntryRow("FSearchControl"); } else if (_modelTypeId == ElementType.ELEMENTTYPE_BILL.ToString()) //业务单据 { this.View.Model.CreateNewEntryRow("FFieldParamControl"); } // 操作参数 this.View.Model.CreateNewEntryRow("FPARAMOPERATION");}


注:批量新增行用this.Model.BatchCreateNewEntryRow(string key, int rowCount)方法。

AfterBindData 绑定数据及控件状态,该事件较常用,加载和界面刷新都会调用该插件。通常该事件处理数据可见性样式等。注意:不要试图在该方法中设置数据(如Model.SetValue),应在BindData前(如BeforeBindData方法)设置。如:单据插件根据类型设置单据字段可见性。


[tr][td]C#
[td]


[tr][td=2,1]public override void AfterBindData(EventArgs e){base.AfterBindData(e);//隐藏菜单项this.View.GetMainBarItem("tbNew").Visible = false;//显示分录菜单项 this.View.GetBarItem("Fentity", "tbAdd").Enabled = true;
//基础资料 if (_modelTypeId == ElementType.ELEMENTTYPE_BASE.ToString()) { this.View.StyleManager.SetVisible("FTab_Field", null, false);}else if (_modelTypeId == ElementType.ELEMENTTYPE_BILL.ToString()) //业务单据{ //单据不含单据类型字段时,字段参数页签屏蔽 if (this._metaData.GetLayoutInfo().GetFieldAppearances().Any(f => f is BillTypeFieldAppearance)) { this.View.StyleManager.SetVisible("FTab_Field", null, true); }}}


设置背景颜色。
[tr][td]C#
[td]


[tr][td=2,1]public override void AfterBindData(EventArgs e){ //获取单据体表格, 参数为单据体Key,示例代码假设为FEntity EntryGrid grid = this.View.GetControl("FEntity"); //设置第一行的背景色,参数:颜色,6位16进制符号,每2位代表一种基色;从0开始,行序号 grid.SetRowBackcolor("#FFC080", 0); //设置第二行F1字段的背景色,参数:字段Key;颜色;行序号 grid.SetBackcolor("F1", "#FFC080", 1);}


您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0