ASP.NET: лучшие практики для привязки пользовательских элементов управления внутри представления формы

Мне нужно отредактировать сложный объект со сложными свойствами с помощью веб-формы. Например, редактирование записи «Информация о пользователе», которая содержит все виды информации о пользователе, включая сложные вещи, такие как уникальное дерево для каждого пользователя. Я сделал вот что:

Я создал веб-форму с элементом управления Formview и установил объект, который хочу привязать, в качестве источника данных для Formview.

В шаблонах Formview я поместил Usercontrols для привязки каждого свойства объекта. Единственное, что я передаю в Usercontrol, - это имя свойства, которое предполагается привязать.

Внутри Usercontrol я создал серверные элементы управления в соответствии с типом свойства, которое Usercontrol должен отображать. Если это простое свойство, такое как строка, я сделал что-то вроде этого:

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

И это прекрасно работает.

Моя проблема связана со сложными свойствами, такими как вещи, которые должны отображаться в древовидной структуре. Я не совсем уверен, как я могу связать древовидное представление внутри моего Usercontrol со свойством объекта, который является источником данных содержащего Formview ...

Если у вас есть представление о том, как это можно сделать, или если вы думаете, что я все делаю неправильно, любая помощь будет принята с благодарностью.

Спасибо.


person Community    schedule 25.02.2009    source источник


Ответы (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 к объекту, у которого есть адреса свойств, которые представляют собой набор дополнительных объектов.

person Bela    schedule 08.07.2009