ASP.NET: наилучшая практика для связывания пользовательских контролей внутри формы - PullRequest
2 голосов
/ 25 февраля 2009

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

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

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

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

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

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

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

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

Спасибо.

1 Ответ

1 голос
/ 08 июля 2009

Вы можете привязать источник данных серверного элемента управления к свойству родительского объекта.

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

...