我正在使用ASP.NET Web Forms,我创建了一个自定义的.ascx用户控件,它代表了一个具有Type,Picture和Color等属性的Car。
现在我尝试以重复的方式在用户界面上添加此自定义控件。让我们说如果我有数据库5汽车,那么5个用户控件将在UI上呈现在asp控件内。
我一直在寻找这样一个控件,研究网格视图和转发器,但它们似乎只有数据源只有从“原始”类型构建的对象列表,而不是像我的自定义ascx控件列表那样的对象。
我的问题是,我是否可以某种方式在asp或html控件内的重复循环内呈现这些用户控件,它提供格式化选项(支持css)? (如果是的话请给我一个例子)
答案 0 :(得分:2)
使用您的用户控件创建ListView
,然后将List<CarObject>
绑定到ListView
<asp:ListView ID="listView1" runat="server">
<ItemTemplate>
<myUC:MyUserControl ID="myUserControl" runat="server" />
</ItemTemplate>
</asp:ListView>
将对象列表(例如List<Car>
)绑定到该列表视图listView1.DataSource = myListOfCars;
。然后在ItemDataBound
事件中将您的对象绑定到您的用户控件。
您也可以将用户控件中的标记放在ListView
内,然后绑定ItemDataBound
事件内的信息并完全回避整个用户控件问题。这仍然允许您重用标记。