ASP.NET:在窗体视图中绑定Usercontrol的最佳实践

时间:2009-02-25 09:23:40

标签: c# asp.net user-controls formview

我需要使用Web表单编辑具有复杂属性的复杂对象。例如,编辑包含有关用户的各种信息的“用户信息”记录,包括复杂的事物,例如每个用户的唯一树。 我做的是这个:

我创建了一个带有Formview控件的Web表单,并将我想要绑定的对象设置为Formview的数据源。

在Formview模板中,我将Usercontrols用于绑定每个对象属性。我传递给Usercontrol的唯一东西是它想要绑定的属性的名称。

在Usercontrol内部,我根据Usercontrol要显示的属性类型创建了服务器端控件。 如果它是一个简单的属性,如字符串,我做了类似的事情:

<asp:TextBox ID="textBox1" runat="server" Text='<%# Bind(PassedAttributeName) %>' />

这很好用。

我的问题在于复杂的属性,例如假设出现在树视图中的东西。我不确定我怎么想将Usercontrol中的treeview绑定到一个对象的属性,该对象是包含Formview的数据源......

如果您对如何做到这一点有所了解,或者如果您认为我做错了,那么任何帮助都将受到赞赏。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以将服务器控件的数据源绑定到父对象的属性。

此代码可能不是100%正确,但类似

<asp:FormView Id="formView1" runat="server">
    <asp:TextBox ID="textBox1" runat="server" Text='<%# Bind("FirstName")%>'/>
    <asp:Repeater ID="repeater1" runat="server" DataSource='<%# Bind("Addresses")%>'>
    //etc
    </asp:Repeater>
</asp:FormView>

假设您将FormView绑定到具有属性地址的对象,该属性地址是更多对象的集合。