DataGrid中Repeater中的复选框问题(c#)

本文关键字:问题 复选框 Repeater DataGrid | 更新日期: 2023-09-27 17:50:30

我知道这有点奇怪,但是有一个很好的理由。

我有一个DataGrid,在DataGrid里面有一个Repeater,在Repeater里面,有一个CheckBoxList

<asp:DataGrid ID="dg" runat="server">
   <Columns>
      <asp:TemplateColumn>
          <ItemTemplate>
              <asp:Repeater ID="rep" runat="server">
                 <ItemTemplate>
                     <asp:CheckBoxList ID="cbl" runat="server" DataTextField="Name" DataValueField="ID"></asp:CheckBoxList>                                
                 </ItemTemplate>
              </asp:Repeater>
          </ItemTemplate>
      </asp:TemplateColumn>
   </Columns>
</Components:ExtendedDataGrid>

这会导致一个相当奇怪的问题。点击第一个重复器项目中的标签就可以了。然而,在第二个重复项目中,标签脱落。

  • 单击第二组中的第二项,则选择第二组中的第一项。
  • 单击第三组中的第一项,则选择第二组中的最后一项。
  • 单击第三组中的第3项,则选中第三组中的第1项。

在第二组中跳过1,在第三组中跳过2,以此类推。很奇怪。

当我查看源代码时,我可以看到标签上的"for"属性确实是错误的。

有什么想法吗?

DataGrid中Repeater中的复选框问题(c#)

Ok…我终于回过头来想明白了。我在复选框旁边有一个我没有提到的隐藏字段。由于某种原因,当我把它去掉后,其他的一切都开始正常工作了