Mediar.Framework—业务的实现3 (控制UI控件的可视和可编辑属性、验证、以及一对一,一对多,多对多关系)
2006-09-29 09:46
726 查看
1、控制UI控件的可视和可编辑属性
它的实现原理是在对象初使化的时候,通过方法InitializePropertyState 把需要隐藏或者要设为只读的控件设为它的状态类型。这里有个状态类型的玫举BizObjectPropertyStateType 它分别有ReadOnly, Hidden, Editable.系统会把所有具有状态的域收集到一个Hashtable 中。
protected override void InitializePropertyState()
protected virtual void OnBizObjectPropertyStateEvent(BizObjectPropertyStateEventArgs e)
在UI中,UI初使化时,会相应的查测控件的属性状态,并设置所有的状态。根据对象的属性状态就可以控制UI控件的隐藏,或者只读。
private void SetControlEditModes(BizObject forThisBizObject)
protected void SetControlEditMode(BizObject forThisBizObject, Control theControl, BizObjectPropertyStateType editMode)
2 对于用户在UI中输入的数据的验证是放在对象实体中。对应的方法是 Validate.当验证与条件不符合时,把这个错误寄存到一个ArrayList中,并引发相关事件。在UI中进行捕获,并进行相关的处理。下面几个方法从名字上面可以看出实际的意义。
public override bool Validate()
3一对一,一对多
当然一个对象实体存在 一个或者多个 一对一、一对多时,对象实体中就需要手对声明。一对一声明为DataHolder,一对多声明为CollectionDataHolder.
PhoneNumberCollectionDataHolder mPhoneNumbers;
ContactAssociationCollectionDataHolder mContactAssociations;
private AddressDataHolder mAddress;
protected void InstantiateObjects2()
protected override void GetChildrenDataObjects(DataSet ds)
protected override void RefreshChildren(DataSet ds)
protected override void CancelEditChildren()
protected override void CloneChildren(BizObject bobj)
4 多对多的处理
多对多一般都有一个中间表。对应的就有一个多对多的实体对象。一个多对多的实体对象包括了两个实体对象。在Demo 中GetContactAssociations 是获取的中间对象实体。
public ContactAssociationCollection GetContactAssociations()
在一个对象中创建中间的对象实体方法如下。
public ContactAssociation CreateContactAssociation(Customer CustomerBO)
对于多对多在UI中也要加入相应的处理方法:
private void lnkCreate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
void CustomerBO_BizObjectUpdatedEvent(object sender, BizObjectUpdatedEventArgs e)
private void AddCustomerToGrid(Customer CustomerBO)
它的实现原理是在对象初使化的时候,通过方法InitializePropertyState 把需要隐藏或者要设为只读的控件设为它的状态类型。这里有个状态类型的玫举BizObjectPropertyStateType 它分别有ReadOnly, Hidden, Editable.系统会把所有具有状态的域收集到一个Hashtable 中。
protected override void InitializePropertyState()
protected virtual void OnBizObjectPropertyStateEvent(BizObjectPropertyStateEventArgs e)
在UI中,UI初使化时,会相应的查测控件的属性状态,并设置所有的状态。根据对象的属性状态就可以控制UI控件的隐藏,或者只读。
private void SetControlEditModes(BizObject forThisBizObject)
protected void SetControlEditMode(BizObject forThisBizObject, Control theControl, BizObjectPropertyStateType editMode)
2 对于用户在UI中输入的数据的验证是放在对象实体中。对应的方法是 Validate.当验证与条件不符合时,把这个错误寄存到一个ArrayList中,并引发相关事件。在UI中进行捕获,并进行相关的处理。下面几个方法从名字上面可以看出实际的意义。
public override bool Validate()
3一对一,一对多
当然一个对象实体存在 一个或者多个 一对一、一对多时,对象实体中就需要手对声明。一对一声明为DataHolder,一对多声明为CollectionDataHolder.
PhoneNumberCollectionDataHolder mPhoneNumbers;
ContactAssociationCollectionDataHolder mContactAssociations;
private AddressDataHolder mAddress;
protected void InstantiateObjects2()
protected override void GetChildrenDataObjects(DataSet ds)
protected override void RefreshChildren(DataSet ds)
protected override void CancelEditChildren()
protected override void CloneChildren(BizObject bobj)
4 多对多的处理
多对多一般都有一个中间表。对应的就有一个多对多的实体对象。一个多对多的实体对象包括了两个实体对象。在Demo 中GetContactAssociations 是获取的中间对象实体。
public ContactAssociationCollection GetContactAssociations()
在一个对象中创建中间的对象实体方法如下。
public ContactAssociation CreateContactAssociation(Customer CustomerBO)
对于多对多在UI中也要加入相应的处理方法:
private void lnkCreate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
void CustomerBO_BizObjectUpdatedEvent(object sender, BizObjectUpdatedEventArgs e)
private void AddCustomerToGrid(Customer CustomerBO)
相关文章推荐
- Mediar.Framework -- 业务的实现1(UI的绑定)
- mybatis实现对象之间的关系(一对一、一对多、多对多)以及mybatis的缓存机制
- Mediar.Framework—业务的实现2(UI 与对象实体的通信)
- ASP.NET动态生成输入页面,以及生成控件的大小控制,输入数据的验证等
- 解决WinForm中ComboBox控件的“设置"DataSourse”属性后无法修改项集合”以及两个不相关联的ComboxBox控件实现数据列表显示不可实现的问题
- MVC3学习第七章 排山倒海第三变----利用MVC3实现数据验证以及完成用户数据的编辑
- Ext.Net/ExtJs:关于TextField控件内size、maxLength控制文本框输入字符长度属性失效问题分析以及解决方案
- [转]最新版Componentart Web.UI控件来说CA控件的授权实现以及一些感想
- [VB.NET]VB.NET2005中怎样实现子窗体控制父窗体的控件属性?
- OC控件间的继承关系,用UI实现
- iOS控件之UITextView字数控制以及占位符的实现
- [原创].NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略
- 数据库的 一对多、多对一、一对一、多对多 关系 以及对应的建表方式
- 关于UI布局中的常见布局类型、控件、控件属性以及引入布局的说明
- 地磅称量系统之(37~39) 直接向数据库的数据表WtBill添加测试数据以及绑定用户控件和使用编码的方式控制dataGridView控件的每列属性和添加数据数据库的表中不存在的字段(非绑定列)
- 在写自定义控件时,如果控件某个属性允许被验证控件验证,需要注意微软在 WebUIValidation.js内的实现。
- 在GridView里实现用CheckBox来控制TextBox控件的编辑功能
- paip.gui控件form窗体的原理实现以及easyui的新建以及编辑实现
- ComponentArt.UI 2008-TreeView控件控制CheckBox全选与反选,以及读取Xml权限
- .NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略