2010-11-03 58 views
0

我正在使用ObjectDataSource和FormView。ObjectDataSource和FormView:如何从业务层添加UI版行为

在FormView中我有一组控件。当FormView在版本中时,我特别有一个ComboBox和一个TextBox,它们的关联如下:当组合框带有一些特殊的值时,TextBox必须只读或不可读。

目前我得到的行为如下:ComboBox触发一个回发,当其所选项目被更改时,并在我的页面的“OnPreRender”中,我获得ComboBox的值并相应地更新TextBox的Readonly属性。

我不喜欢这种方法是我不使用ObjectDataSource所使用的对象模型。问题很简单,当FormView处于编辑状态时,似乎没有办法获取正在编辑的对象的实例。 'DataItem'为空,我还没有找到任何方法从控件中的值自动构建一个新对象,将它传递给我的业务层。当然,我可以通过明确地掌握所有控件的价值来完成整个工作,但这并不好。

有没有人遇到过这种情况?任何想法如何获得一个干净的设计?

回答

0

如何使用DataItemIndex或DataKey?我可能会使用DataKey,然后使用业务方法查找关键的对象。

+0

是的,但是我会在没有用户进行修改的情况下获取对象。为了获得这些修改,我必须读取所有控件中的数据,例如myBusinessObject.Property1 = controlX.Text; myBusinessObject.Property2 = controlY.SelectedValue; ...。如果我有一种自动的方式来做到这一点,那会很棒。 – Thierry 2010-11-03 08:39:55