FineUI 官方论坛
标题:
2个建议
[打印本页]
作者:
Mad_Man
时间:
2014-9-2 16:43
标题:
2个建议
1,建议增加BIND属性。表单如下
<f:SimpleForm ID="frmEdit" ShowBorder="false" ShowHeader="false" runat="server" BodyPadding="10px">
<Items>
<f:TextBox runat="server" ID="tbName" MaxLength="50" Label="指标分组名称" ShowRedStar="true" Required="true" Bind="INDEX_GROUP_NAME"></f:TextBox>
<f:NumberBox runat="server" ID="tbOrderIndex" Bind="ORDER_INDEX" ShowRedStar="true" Required="true" Label="部门序号"></f:NumberBox>
</Items>
</f:SimpleForm>
如下,通过BIND属性后,让实体和表单完成绑定
frmEdit.SetDataSource(this.GetDB().INDEX_GROUP.FirstOrDefault(c => c.INDEX_GROUP_ID == id));这样就不用一个控件一个控件赋值了。
那么插入或者更新时如果反向给实体赋值呢?
var id = this.GetQueryGuidValue("id");
if (id != Guid.Empty)
{
item = this.GetDB().INDEX_GROUP.FirstOrDefault(c => c.INDEX_GROUP_ID == id);
if (item == null)
{
Alert.ShowInTop("数据错误");
return;
}
}
else
{
item = new INDEX_GROUP();
item.INDEX_GROUP_ID = Guid.NewGuid();
this.GetDB().INDEX_GROUP.Add(item);
}
item = frmEdit.UpdateData<INDEX_GROUP>(item);
this.GetDB().SaveChanges();
请注意这句:frmEdit.UpdateData<INDEX_GROUP>(item);
2,为了偷懒,我又增加了MaxLength属性,使用如下
<f:TextBox runat="server" ID="tbMemo" MaxLength="50" Label="指标说明" ShowRedStar="true" Required="true" Bind="DESCRIPTION"></f:TextBox> 长度超过50个自动截断。
SetDataSource和UpdateData的源码已经发给版主了。请考虑一下。
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4