Use of CheckBox in GridView with paging in Asp.net

Use of CheckBox in GridView with paging in Asp.net

o use check box inside a grid view this piece of code will works fine.

Step 1:

<asp:GridView ID=”gvData” runat=”server” AutoGenerateColumns=”false” AllowPaging=”true”
PageSize=”3″ OnPageIndexChanging=”gvData_PageIndexChanging”>
<Columns>
<asp:BoundField DataField=”ID” HeaderText=”ID” />
<asp:BoundField DataField=”Firstline” HeaderText=”Name” />
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID=”chkStatus” runat=”server” AutoPostBack=”true” OnCheckedChanged=”chkStatus_OnCheckedChanged”
Checked='<%# Convert.ToBoolean(Eval(“Approved”)) %>’ Text='<%# Eval(“Approved”).ToString().Equals(“True”) ? ” Approved ” : ” Not Approved ” %>’ />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

Step 2:

In the page load method if u dont use if(!IsPostBack) then ur chkStatus_OnCheckedChangedevent will not fire and if u miss to call the FillData() method inside gvData_PageIndexChangingevent then your paging will not work.

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
FillData();
}

protected void FillData()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings[“myConnection”].ToString());
SqlDataAdapter da = new SqlDataAdapter(“select * from tblDetails”, cn);
DataSet ds = new DataSet();
da.Fill(ds);
gvData.DataSource = ds;
gvData.DataBind();
}

protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
FillData();
gvData.PageIndex = e.NewPageIndex;
gvData.DataBind();
}

public void chkStatus_OnCheckedChanged(object sender, EventArgs e)
{
CheckBox chkStatus = (CheckBox)sender;
GridViewRow row = (GridViewRow)chkStatus.NamingContainer;

string cid = row.Cells[1].Text;
bool status = chkStatus.Checked;

string query = “UPDATE tblDetails SET Approved = @Approved WHERE ID = @ID”;

SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings[“myConnection”].ToString());
SqlCommand com = new SqlCommand(query, cn);

com.Parameters.Add(“@Approved”, SqlDbType.Bit).Value = status;
com.Parameters.Add(“@ID”, SqlDbType.Int).Value = cid;

cn.Open();
com.ExecuteNonQuery();
cn.Close();

FillData();
}

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply