2010-02-10 59 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