Asp.net 中继器内部中继器未正确绑定
我有一个中继器在另一个里面。像这样:Asp.net 中继器内部中继器未正确绑定,asp.net,html,data-binding,webforms,repeater,Asp.net,Html,Data Binding,Webforms,Repeater,我有一个中继器在另一个里面。像这样: <asp:Repeater ID="CategoryRepeater" runat="server" OnItemDataBound="ItemBound"> <ItemTemplate> <div class="groupbox"> <fieldset> <legend><%# Container.DataIte
<asp:Repeater ID="CategoryRepeater" runat="server" OnItemDataBound="ItemBound">
<ItemTemplate>
<div class="groupbox">
<fieldset>
<legend><%# Container.DataItem %></legend>
<table>
<asp:Repeater ID="ItemRepeater" runat="server">
<ItemTemplate>
<tr>
<td>
<asp:CheckBox id="chkItem" runat="server" Text='<%# Eval("Text")%>' />
<asp:Button ID="btnXRefs" Text="x-refs" runat="server" CssClass="xRefButton" OnClick="btnSelectXRefs_Click" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</fieldset>
</div>
</ItemTemplate>
</asp:Repeater>
我的目标是首先使用顶层创建多个groupbox
,然后将项目绑定到每个项目中。所以我最终得到了许多小的复选框列表
问题是,所有顶级框都会出现,但只有第一个框包含复选框项,即只有第一个框是内部绑定的,并且第一个框只调用一次ItemBound
方法
知道为什么吗?这行
if (args.Item.ItemType == ListItemType.Item)
应该是这样的
if(args.Item.ItemType = ListItemType.Item ||
args.Item.ItemType == ListItemType.AlternatingItem)
很抱歉,这是我的代码中的一个错误,我最初尝试了OnItemDataBinding,按照这个问题--(安东斯的回答)你是如何绑定这个东西的?你能分享你的绑定代码吗?@yogi发布了链接到这个的完整代码。你的
CategoryRepeater
有多少项?目前只有2项。第一个有2个子项,第二个有4个子项。但是第二个没有显示,因为我认为它的边界不正确。由于第一个绑定,只显示顶级名称。
if(args.Item.ItemType = ListItemType.Item ||
args.Item.ItemType == ListItemType.AlternatingItem)