2010-02-10 44 views
2

(首先,看來這是以前多次討論的對象,但我找不到我的情況下,一個合適的回答)綁定的SelectedValue嵌套財產

我有一個用DropDownList選擇一個月的asp.net FormView。 FormView是綁定到ObjectDataSource的數據。

<asp:DropDownList ID="MonthsList" DataSourceID="MonthsListDataSource" DataTextField="Value" DataValueField="Key" SelectedValue='<%# Bind("OrderDate.Month") %>' Width="100" runat="server" /> 

我喜歡將選定的值綁定到'OrderDate'的嵌套屬性'Month',如上所示。 OrderDate屬性的類型爲DateTime。綁定到嵌套屬性時出現的錯誤是:

對Bind的調用格式不正確。請參閱文檔以獲取綁定的正確參數。

什麼是能夠綁定到嵌套propety的最佳解決方案?

在此先感謝。

回答

3

你是從的DataSourceID = 「MonthsListDataSource」 中檢索數據並tryingo將其綁定到另一個數據庫字段(的SelectedValue =」 <%#的eval(「OrderDate.Month什麼「)%>')?

在我的應用程序做到這一點是這樣的:

<asp:DropDownList ID="MonthsList" DataSourceID="MonthsListDataSource" DataTextField="Value" DataValueField="Key" SelectedValue='<%# Eval("MonthsListDataSource.Month") %>' Width="100" runat="server" /> 

和更新檢索去的DropDownList與find控制的情況下,獲得其選擇的值,它關聯到其他表(OrderDate.Month)並保存。

對不起,我的答案,但我不知道是否有經驗。

+0

我喜歡你的解決方案,非常乾淨。謝謝。 – 2010-02-10 14:26:28

+0

我很樂意提供幫助 – Ewerton 2010-02-10 16:27:09

+0

@Ewerton - 您將在後面的代碼中處理所選值綁定的內容? – 2012-06-26 10:40:26

1

有關使用評估和演示關鍵字

<asp:DropDownList ID="MonthsList" DataSourceID="MonthsListDataSource" DataTextField="Value" DataValueField="Key" SelectedValue='<%# Eval("OrderDate.Month") %>' Width="100" runat="server" /> 
+0

hm ...這是不安全的,因爲'SelectedValue'可能會引發異常。你應該去參加'ItemDataBound'事件! – 2010-02-10 11:58:34

+0

這樣做,但我想使用Bind(),因爲在提交表單時必須將選定的值返回給數據源。 – 2010-02-10 11:58:49

+1

你爲什麼要使用'Bind()'。你需要一個雙向綁定?...在​​不可變類型上? – 2010-02-10 12:11:33