【问题标题】:ASP.NET: Best practice for binding Usercontrols inside a formviewASP.NET:在窗体视图中绑定用户控件的最佳实践
【发布时间】:2009-02-25 09:23:40
【问题描述】:

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

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

在 Formview 模板中,我放置了用于绑定每个对象属性的用户控件。我传递给 Usercontrol 的唯一内容是它要绑定的属性的名称。

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

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

这很好用。

我的问题是复杂的属性,比如假设出现在树视图中的东西。我不确定我应该如何将我的用户控件中的树视图与一个对象的属性绑定,该对象是包含 Formview 的数据源...

如果您知道如何做到这一点,或者您认为我做错了整件事,我们将不胜感激。

谢谢。

【问题讨论】:

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


    【解决方案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 绑定到具有属性地址的对象,该属性地址是更多对象的集合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多