我有一个转发器,目前在我的第一列显示的是console type
列:
在我的专栏标题下:PS4,PS4,PS4,XBOX ONE,XBOX ONE,Nintendo wii
所以它正在对它进行排序,但我想将它分组,以便它只显示一个控制台一次 我认为应该有一种方法可以将dataItemRow与之前的dataItemRow进行比较 但不是很确定如何。有什么建议?
void rptItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//code here that goes through all items and compares items
}
}
人口:
SqlDataAdapter da = new SqlDataAdapter("Stored Procedure", conn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.Add(new SqlParameter("@Admin", "ALL"));
DataSet dataset = new DataSet();
da.Fill(dataset);
rptItems.DataSource = dataset.Tables[0];
rptItems.DataBind();
答案 0 :(得分:0)
背后的主要思想是use two repeater controls
(任何基于模板的渲染控件)。外转发器控件的ItemTemplate将托管标头信息和内部转发器控制。内部转发器控件将托管与标题(Group By列)对应的记录
Item databound中的主要逻辑是
- 获取要绑定的记录并获取与列相对应的所有记录,并将其添加到临时列表中
- 使用绑定记录中的值构建标题信息
- 将记录从临时名单(从1)绑定到内部转发器
- 忽略绑定的记录和同一组的其他记录
醇>
如果您需要代码帮助,请与我们联系。