0

私はグリッドビューを持っています。2 つのチェックボックス項目テンプレートで構成されています。

<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>       

グリッドビューの行のチェックボックスのいずれかをチェックすると、他のチェックボックスを自動的にチェックしたい..またその逆..どうすれば可能ですか?

4

1 に答える 1

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、他のチェックボックスの値と照合するかどうかを確認します。

これは長くて複雑な方法ですが、方法を説明するには最も簡単です。

于 2013-07-18T10:23:54.350 に答える