您的位置:首页 > 产品设计 > UI/UE

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐