gpt4 book ai didi

asp.net - ASP :repeater - headers at section change

转载 作者:行者123 更新时间:2023-12-05 00:09:20 25 4
gpt4 key购买 nike

有没有办法在数据绑定(bind) asp:repeater 控件中的字段更改时显示子标题行,例如

代替

国家 |颜色 |数字
英国 |红色 | 3
英国 |绿色 | 3
法国| 家企业红色 3

做这个:

==英国==
颜色 |数字
红色 | 3
绿色 3
==法国==
颜色 |数字
红色 | 3

非常感谢您的帮助。

最佳答案

没有内置支持,但这并不意味着它是不可能的。

您需要覆盖 OnItemDataBound 事件,并在标记中有类似的内容:

<asp:Repeater OnItemDataBound="NextItem" ... >
<ItemTemplate><asp:Literal Id="Header" Visible="False" Text="{0}<strong>{1}</strong><br/><table>" ... />
<tr>
<td><asp:Label id="Color" Text="<%# Eval("Color")" ... /></td>
<td><asp:Label id="Number" Text="<%# Eval("Number")" ... /></td>
</tr>
</ItemTemplate>
</asp:Repeater></table>

然后在代码隐藏中:
private string CurCountry = string.Empty;

private void NextItem(object sender, RepeaterItemEventARgs e)
{
if ( e.Item.ItemType != ListItemType.Item
&& e.Item.ItemType != ListItemType.AlternatingItem) return;

DbDataRecord row = (DbDataRecord)e.Item.DataItem;

if (CurCountry != row["country"].ToString() )
{
string prev = (CurCounter == string.Empty)?"":"</table>";
CurCountry = row["country"].ToString();

Literal header = (Literal)e.Item.FindControl("Header");
Literal footer = (Literal)e.Item.FindControl("Footer");

header.Text = string.Format(header.Text, prev, CurCountry);
header.Visible = true;
}
}

关于asp.net - ASP :repeater - headers at section change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/507215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com