您可以通过在转发器内使用额外的渲染来做到这一点,这些渲染在更改时渲染标题。这是一个完整的例子:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%#GetHeader(Container.DataItem)%>
<%#GetData(Container.DataItem)%>
</ItemTemplate>
</asp:Repeater>
和后面的代码:
public int cLastGroup = 1;
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = new List<int> { 2, 3, 4, 5, 6, 7 , 8 };
Repeater1.DataBind();
}
public string GetHeader(object oItem)
{
// some how like that I will made yours
// if(cLastGroup != current) {cLastGroup = current; return string.format()}
// but now for test I make the 3 and 7 as header
if (((int)oItem) == 3 || ((int)oItem) == 7)
return string.Format("<br><br> Header :{0}", (int)oItem);
else
return string.Empty;
}
public string GetData(object oItem)
{
return string.Format("<br> data :{0}", ((int)oItem));
}
并给出这个输出
data :2
Header :3
data :3
data :4
data :5
data :6
Header :7
data :7
data :8
Ps,为了让它按你喜欢的方式工作,唯一的事情是你的数据必须按“公司”排序
也可能有帮助:在绑定到中继器时希望每页有 10 行
希望这可以帮助您继续前进。