C# asp.net表单允许多个样式模板的重复器替代方案

C# asp.net表单允许多个样式模板的重复器替代方案,c#,repeater,C#,Repeater,我有一个返回数据集的页面。我已经将它绑定到一个repeater控件,但这只允许两个项目模板,所以有两种样式。但是,我希望为不同的数据提供多种样式 背景是我将返回一个“前10名”(无论是最新的,还是喜欢的),我希望对其进行风格设计,使第一名有自己的风格,第二名和第三名有第二种风格, 4-10有第三种风格 在返回单个数据集的同时,是否还有其他方法可以实现这一点,就像我使用中继器一样?您可以创建自定义控件并根据数据管理不同的行为。将此自定义控件放入repeater模板中 使用以下方法,您可以在循环前声

我有一个返回数据集的页面。我已经将它绑定到一个repeater控件,但这只允许两个项目模板,所以有两种样式。但是,我希望为不同的数据提供多种样式

背景是我将返回一个“前10名”(无论是最新的,还是喜欢的),我希望对其进行风格设计,使第一名有自己的风格,第二名和第三名有第二种风格, 4-10有第三种风格


在返回单个数据集的同时,是否还有其他方法可以实现这一点,就像我使用中继器一样?

您可以创建自定义控件并根据数据管理不同的行为。将此自定义控件放入repeater模板中


使用以下方法,您可以在循环前声明一个计数器,并在每个循环结束时递增它,以跟踪您的行号

其余答案全部取自:

与使用中继器不同,您可以使用and标记以类似MVC类型的方式循环列表


只要您正在循环的属性可以从aspx/ascx页面访问(例如声明为受保护或公共),您就可以循环它。代码背后没有其他代码

将计算代码并输出结果

以下是最基本的示例:

在代码隐藏中的类级别声明此列表:

公共列表站点=新列表{“StackOverflow”、“超级用户”、“Meta SO”}; 这只是一个简单的字符串列表,所以在您的aspx文件中

<% foreach (var site in Sites) { %> <!-- loop through the list -->
  <div>
    <%= site %> <!-- write out the name of the site -->
  </div>
<% } %> <!--End the for loop -->


您可以始终在中继器中绑定用户控件。我已经这样做了,因此我选择了前7种类型的用户控件,我有3种类型的用户控件(1 x“顶层故事”、2 x“第二层故事”和4 x“小故事”,这样我就可以将前7个结果中的每一个绑定到相关控件。但是,它只是将每个结果放入每个控件中,7次。我如何使它仅将结果放入1个用户控件中?我猜您可以使用1个用户控件。传递一些变量,这些变量可以决定加载时各自的CSS/标题或行为。
<% foreach (var site in Sites) { %> <!-- loop through the list -->
  <div>
    <%= site %> <!-- write out the name of the site -->
  </div>
<% } %> <!--End the for loop -->