sti*_*tib 5 .net webforms repeater custom-server-controls
有人可以尝试推荐解决以下请求的最佳原因:
我使用Repeater类作为Base创建了许多扩展类,并且喜欢这样做的灵活性,易用性和结果.我现在要做的是为单个对象(即不实现IListSource或IEnumerable的DataSource)制作类似的自定义Web控件.我已经创造了什么,我尝试使用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()
Run Code Online (Sandbox Code Playgroud)
这似乎是一件小事,我希望能做的是以下几点:
e.g new call, where my control is the new custom control:
Dim oObj as New MyObject(1)
myControl.DataSource = oObj
myControl.DataBind()
Run Code Online (Sandbox Code Playgroud)
我希望能够使用各种变量和属性定义此自定义控件,其结果将启用以下类型的布局:
<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>
Run Code Online (Sandbox Code Playgroud)
这种实现必须使用WebForms进行,尽管看起来使用MVC将是考虑上述情况的理想方法.通过这样做,我想创建一个灵活的WebControl,它使用反射(可以用于实现特定接口的所有类),这将生成所需的表单,每次只需要三行代码(上图).
我是否应该只为自定义转发器(DataObject)添加一个属性,该转发器接收一个对象并相应地设置DataSource并节省我的时间?或者,还有更好的方法?
希望这一切都有意义!
干杯,史蒂夫
你正在努力解决转发器想要一个List并且你想给它一个实例的事实.只需将其包装在新的List*oObj中,然后继续.它一直都在做.
我当然不知道他们正在使用那个自定义服务器控件.在我看来,你再次努力了.
<asp:repeater id="whatever" runat=server>
<ItemTemplate>First Name: <%# DataBinder.Eval(Container.DataItem,"FirstName") %></ItemTemplate>
</asp:repeater>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2108 次 |
| 最近记录: |