我有一个gridview。其中包含两个复选框项模板。
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
CellPadding="4" ForeColor="#333333" GridLines="None"
<Columns>
<asp:BoundField DataField="student_name" HeaderText="Student Name" SortExpression="student_name" >
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundField>
<asp:BoundField DataField="student_id"
HeaderText="Student ID" ItemStyle-HorizontalAlign="Center"
SortExpression="student_id" ReadOnly="True" >
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundField>
<asp:TemplateField HeaderText="Practical Test">
<ItemTemplate>
<asp:CheckBox AutoPostBack="false" Checked="true" Id="CheckBoxTheory" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Theory Test">
<ItemTemplate>
<asp:CheckBox AutoPostBack="false" Checked="true" Id="CheckBoxPractical" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
当检查一行网格视图的任意一个复选框时,我想自动检查另一个复选框..反之亦然..怎么可能?
答案 0 :(得分:0)
在服务器端,您需要更改复选框,使其为AutoPostBack="True"
并添加OnCheckedChanged="CheckBoxTheory_Checked"
,以便系统在您选择时可以回发。
然后你可以使用以下内容:
Sub CheckBoxTheory_Checked (sender as object, e as eventargs)
Dim CheckBoxTheory as CheckBox = sender
Dim gvRow as GridviewRow = DirectCast(CheckBoxTheory.NamingContainer, GridviewRow)
Dim CheckBoxPractical as CheckBox = gvRow.FindControl("CheckBoxPractical")
If CheckBoxTheory.Checked = True Then
CheckBoxPractical.Checked = True
Else
CheckBoxPractical.Checked = False
End If
End Sub
这会将sender
作为复选框,获取父容器(或NamingContainer
),这将是GridviewRow
,然后找到CheckBoxPractical
控件然后检查是否反对其他复选框值。
这是一个漫长的方式,但最简单的解释方法。