在用户界面中重复用户控件

时间:2012-12-17 21:15:42

标签: c# asp.net controls

我正在使用ASP.NET Web Forms,我创建了一个自定义的.ascx用户控件,它代表了一个具有Type,Picture和Color等属性的Car。

现在我尝试以重复的方式在用户界面上添加此自定义控件。让我们说如果我有数据库5汽车,那么5个用户控件将在UI上呈现在asp控件内。

我一直在寻找这样一个控件,研究网格视图和转发器,但它们似乎只有数据源只有从“原始”类型构建的对象列表,而不是像我的自定义ascx控件列表那样的对象。

我的问题是,我是否可以某种方式在asp或html控件内的重复循环内呈现这些用户控件,它提供格式化选项(支持css)? (如果是的话请给我一个例子)

1 个答案:

答案 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事件内的信息并完全回避整个用户控件问题。这仍然允许您重用标记。