前台
<asp:Repeater id="rptMainMenu" runat="server">
<HeaderTemplate>
<table id="table01" width="149" border="0" cellspacing="0" cellpadding="0">
</HeaderTemplate>
<ItemTemplate>
<tr class ="tr" >
<td id="tdManiMenu" >
<asp:CheckBox ID ="cbxAll" runat ="server" Text ='<%# DataBinder.Eval(Container.DataItem, "标题") %>' Font-Bold ="true"></asp:CheckBox>
</td>
</tr>
<tr class ="tr">
<td id="tdMenuBorder">
<asp:Repeater id="rptMainDetail" runat="server">
<ItemTemplate>
<tr>
<td style =" padding-left :10px">
<asp:CheckBox ID="cbxMenuDetail" runat="server" Font-Size ="small" Text ='<%# DataBinder.Eval(Container.DataItem, "标题") %>'
></asp:CheckBox>
<asp:HiddenField runat ="server" ID ="hidValue" Value ='<%# DataBinder.Eval(Container.DataItem, "ID") %>' />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
后台vb
''' <summary>
''' 获得Repeater的checkbox的选项值
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Private Function GetRepeater() As String
Dim str As String = ""
Dim i As Integer = 0
Dim j As Integer = 0
For i = 0 To Me.rptMainMenu.Items.Count - 1
Dim rptMenuDetail As Repeater = Me.rptMainMenu.Items(i).FindControl("rptMainDetail")
For j = 0 To rptMenuDetail.Items.Count - 1
Dim cbxMenuDetail As CheckBox = rptMenuDetail.Items(j).FindControl("cbxMenuDetail")
Dim hidValue As HiddenField = rptMenuDetail.Items(j).FindControl("hidValue")
If cbxMenuDetail.Checked = True Then
str = str + "," + hidValue.Value
End If
Next
Next
If str <> "" Then
str = str.Substring(1, str.Length - 1)
End If
Return str
End Function
''' <summary>
''' 设置Repeater的checkbox的选项值
''' </summary>
''' <remarks></remarks>
Private Sub SetRepeater(ByVal str As String)
Dim i As Integer = 0
Dim j As Integer = 0
Dim n As Integer = 0
Dim arr As Array = str.Split(",")
For i = 0 To Me.rptMainMenu.Items.Count - 1
Dim cbxAll As CheckBox = rptMainMenu.Items(i).FindControl("cbxAll")
Dim flag As Boolean = True
Dim rptMenuDetail As Repeater = Me.rptMainMenu.Items(i).FindControl("rptMainDetail")
For j = 0 To rptMenuDetail.Items.Count - 1
Dim cbxMenuDetail As CheckBox = rptMenuDetail.Items(j).FindControl("cbxMenuDetail")
Dim hidValue As HiddenField = rptMenuDetail.Items(j).FindControl("hidValue")
For n = 0 To UBound(arr)
If hidValue.Value = arr(n) Then
cbxMenuDetail.Checked = True
End If
Next
If cbxMenuDetail.Checked = False Then
flag = False
End If
Next
If flag Then
cbxAll.Checked = True
End If
Next
End Sub