Может ли кто-нибудь попытаться рекомендовать наилучшие причины для решения нижеуказанного запроса:. Сетевой эквивалент повторителя для одного объекта?
Я создал несколько расширенных классов, используя класс Repeater в качестве базы и люблю гибкость, легкость и результаты этого , Теперь я хочу сделать аналогичный пользовательский веб-элемент управления для одного объекта (т. Е. DataSource не реализует 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, который использует отражение (которое может использоваться для всех классов, которые реализуют определенный интерфейс), который будет генерировать требуемую форму только с тремя строками кода (выше) каждый раз, когда это необходимо.
Должен ли я просто добавить свойство к пользовательскому ретранслятору (DataObject), который принимает объект и соответствующим образом устанавливает DataSource и сохраняет мое время? Или есть лучший способ?
Надеюсь, это все имеет смысл!
Приветствия, Стив
Хорошо, что очень сложно преодолеть мыслительный процесс, но то, что мой контроль достигнет, - это создать страницу с двумя закладками «Детали» и «Адрес», которые могут быть вставлены между ними и на каждом из них будут иметь метки и соответствующие элементы формы, которые могут обновлять объект. То, что вы показали, полностью пропустило - возможно, моя вина в формулировке вопроса. Конечно, в вашем, например, я мог просто сделать: Eval («FirstName»). – stibstibstib
Все еще слишком много, чтобы сделать много работы для нескольких вкладок, и я по-прежнему рекомендую повторитель. Да, я полностью не понимаю ваш вопрос. Я не использую Eval, DataBinder.Eval - это 1.0 способ сделать это, и я не вижу причин для изменения, Habit. –