2010-11-03 33 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