Может ли кто-нибудь попытаться порекомендовать наилучшее основание для решения запроса ниже:
Я создал несколько расширенных классов, используя класс Repeater в качестве базы, и мне нравится гибкость, легкость и результаты этого. Теперь я хочу создать аналогичный пользовательский веб-элемент управления для одного объекта (т. Е. Источника данных, не реализующего IListSource или IEnumerable). Я создал структуру того, чего я пытаюсь достичь, расширяя ретранслятор, а затем при настройке источника данных, используя список из 1 элемента для хранения объекта, а затем привязку данных.
e.g a rough example:
Dim oObj as New MyObject(1)
Dim gl As New Generic.List(of MyObiect)()
gl.Add(oObj)
rpt.DataSource = gl
rpt.DataBind()
Это похоже на небольшой взлом вокруг вещей, что я хотел бы сделать, это следующее:
e.g new call, where my control is the new custom control:
Dim oObj as New MyObject(1)
myControl.DataSource = oObj
myControl.DataBind()
Я хочу иметь возможность определить этот пользовательский элемент управления с различными переменными и свойствами, в результате чего будет доступен макет следующего типа:
<My:ObjControl ID="frm" runat="server">
<Tabs>
<My:Tab name="Details">
<Items>
<My:Item Type="Text" Label="First Name" Property="FirstName" />
<My:Item Type="Text" Label="Last Name" Property="LastName" />
<My:Item Type="Text" Label="Title" Property="Title" />
</Items>
</Tab>
<My:Tab name="Address">
<Items>
<My:Item Type="Text" Label="Address 1" Property="Address1" />
<My:Item Type="Text" Label="Address 2" Property="Address2" />
<My:Item Type="Text" Label="Address 3" Property="Address3" />
</Items>
</Tab>
</Tabs>
</My:ObjControl>
Эта реализация должна осуществляться с использованием WebForms, хотя, похоже, использование MVC было бы идеальным подходом, учитывая вышесказанное. Делая это, я хочу создать гибкий WebControl, который использует отражение (которое можно использовать для всех классов, которые реализуют определенный интерфейс), который будет генерировать требуемую форму только с тремя строками кода (сверху) каждый раз, когда это необходимо. 1012 *
Должен ли я просто добавить свойство в настраиваемый повторитель (DataObject), который принимает объект и соответствующим образом устанавливает источник данных и экономит мое время? Или есть лучший способ?
Надеюсь, все это имеет смысл!
Ура,
Стив