Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie den Kontrollkästchenwert von GridView, wenn das Kontrollkästchen OnCheckedChanged ist

Verwenden Sie GridViewRow wie folgt ... Sie können die aktuelle Zeile der Checkbox erhalten, die mit NamingContainer aktiviert ist Eigenschaft wie folgt...

Bearbeiten :-Ändern Sie das Markup und fügen Sie Hiddenfield hinzu, um den Wert für Selected wie folgt zu halten...

<asp:TemplateField HeaderText="ใช่">          
            <ItemTemplate>              
                <asp:CheckBox ID="chkSelected" runat="server"  Checked='<%# Eval("Selected").ToString().Equals("True") %>'
                     AutoPostBack="true" OnCheckedChanged="chkSelected_CheckedChanged" CssClass="chkBox" />     
                <asp:HiddenField ID="hiddenField1" Value='<%# Eval("Selected").ToString() %>' runat="server" />    
            </ItemTemplate>       
 </asp:TemplateField> 

Dann können Sie das Hiddenfield wie folgt erhalten und auch seinen Wert

protected void chkSelected_CheckedChanged(object sender, EventArgs e)
    {
         GridViewRow row = (GridViewRow)(((CheckBox)sender).NamingContainer);
         HiddenField hdnCheck=(HiddenField)row.Cells[4].FindControl("hiddenField1");
         if (Convert.ToString(hdnCheck.Value != "")
           {
               Response.Write("true");
           }
           else
           {
               Response.Write("false");
           }

         // Edit: You can easily get Checkbox which has been checked, and do your logic
         CheckBox chkSelect=(CheckBox)sender;
         if (chkSelect.Checked)
           {
               Response.Write("true");
           }
           else
           {
               Response.Write("false");
           }    
    }