将ASP.net DropDownList的SelectedValue绑定到嵌套属性

时间:2010-02-10 11:40:11

标签: c# asp.net data-binding

(首先,似乎这是一个以前讨论过很多次的主题,但我无法找到适合我案例的答案)

我有一个带有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的调用格式不正确。有关Bind的正确参数,请参阅文档。

能够绑定到嵌套的角色的最佳解决方案是什么?

提前致谢。

2 个答案:

答案 0 :(得分:3)

您是从DataSourceID =“MonthsListDataSource”检索数据并尝试将其绑定到另一个DataBase字段(SelectedValue ='&lt;%#Eval(“OrderDate.Month”)%&gt;')?

在我的应用程序中,这样做:

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

使用find控件更新retrieve de DropDownList时,获取其选定值,将其关联到其他表(OrderDate.Month)并保存。

对不起我的回答,但我不知道是否有任何承诺。

答案 1 :(得分:1)

如何使用 Eval 关键字

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