1
Answer

Uncheck all checkbox still maintain check when data value 1

I have a select all checkbox at gridview header. I manage to do select all function but when uncheck all, it uncheck all checkbox including the data that has value 1.  I want it to be when I uncheck all, the data that value 1 still check. how do I do that.. below the image is my sample code...
also how to make the checkbox text stays the same line as checkbox...
Tq so much..



<asp:TemplateField HeaderText="">
  <HeaderTemplate>
  <asp:CheckBox ID="chkSelectAllGeneral" runat="server" Text="GENERAL" 
  Font-Size="Smaller" AutoPostBack="true"
  OnCheckedChanged="chkSelectAllGeneral_CheckedChanged" /> 
  </HeaderTemplate>
  <ItemTemplate>
      <asp:CheckBox ID="chkgeneral" AutoPostBack="true"  runat="server" />
  </ItemTemplate>
</asp:TemplateField>


protected void chkSelectAllGeneral_CheckedChanged(object sender, EventArgs e)
{
  foreach (GridViewRow rowItem in GridView3.Rows)
  {
  CheckBox chkgeneral = (CheckBox)(rowItem.Cells[0].FindControl("chkgeneral"));
  chkgeneral.Checked = ((CheckBox)sender).Checked; 
  }
}
Answers (1)
0
Satyapriya Nayak

Satyapriya Nayak

NA 53k 8m 11y
Default.aspx code

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript" language="javascript">
function Selectall_Deselectall(CheckBoxControl)
{
if (CheckBoxControl.checked == true)
{
var i;
for (i=0; i < document.forms[0].elements.length; i++)
{
if ((document.forms[0].elements[i].type == 'checkbox') &&
(document.forms[0].elements[i].name.indexOf('checkpoint') > -1))
{
document.forms[0].elements[i].checked = true;
}
}
}
else
{
var i;
for (i=0; i < document.forms[0].elements.length; i++)
{
if ((document.forms[0].elements[i].type == 'checkbox') &&
(document.forms[0].elements[i].name.indexOf('checkpoint') > -1))
{
document.forms[0].elements[i].checked = false;
}
}
}
}
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true">
    <Columns>
            
    <asp:TemplateField>
    <HeaderTemplate>
    <input type="checkbox" name="SelectAllCheckBox" onclick="Selectall_Deselectall(this)">
    </HeaderTemplate>
    <ItemTemplate>
    <asp:CheckBox id="checkpoint" runat="server" ></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateField>
    </Columns>
 </asp:GridView>

    </div>
    </form>
</body>
</html>


Default.aspx.vb code

Imports System.Data.SqlClient
Imports System.Data
Partial Class _Default
    Inherits System.Web.UI.Page
    Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("ConnectionString").ToString()
    Dim con As New SqlConnection(strConnString)
    Dim str As String
    Dim com As SqlCommand
    Dim sqlda As SqlDataAdapter
    Dim ds As DataSet
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        con.Open()
        str = "select * from student"
        com = New SqlCommand(Str, con)
        Dim reader As SqlDataReader
        reader = com.ExecuteReader()
        GridView1.DataSource = reader
        GridView1.DataBind()
        con.Close()
    End Sub
End Class