标题行复选框问题 [英] Problem with Header row checkbox

查看:75
本文介绍了标题行复选框问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有网格视图,其中有一个复选框列。问题是,当我单击标题行复选框时,它会标记所有行复选框,但是当我进行分页并返回到同一页面时,标题复选框状态不会保持,但其他状态处于标记状态。



所以我想保持我的顶部复选框选择所有复选框



这是我的代码:



I have grid view, in which I have a checkbox column. The problem is that when I click on the header row checkbox, it marks all row checkboxes, but when I do paging and come back to same page, the header check box state is not maintaining but other are in marked state.

So I want to maintain my top checkbox which selects all checkboxes

Here is my code:

protected void grdEmployee_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                grdEmployee.PageIndex = e.NewPageIndex;
 
                List<string> listEmpId = new List<string>();
                if (hdnAdvanceSearch.Value == "Normal")
                {
                    if (ViewState["empListNormal"] != null)
                    {
                        listEmpId = (List<string>)ViewState["empListNormal"];
                    }
                    foreach (GridViewRow row in grdEmployee.Rows)
                    {
                        CheckBox chkRow = (CheckBox)row.FindControl("chkRow");
                        CheckBox chkHeader = (CheckBox)row.FindControl("chkHeader");
                        HiddenField hdnEmployeeID = (HiddenField)row.FindControl("hdnEmployeeID");
                        
                        if (chkRow.Checked)
                        {
                            if (!listEmpId.Contains(hdnEmployeeID.Value))
                            {
                                listEmpId.Add(hdnEmployeeID.Value);
                            }
                        }
                        else
                        {
                            if (listEmpId.Contains(hdnEmployeeID.Value))
                            {
                                listEmpId.Remove(hdnEmployeeID.Value);
                            }
                        }
                    }
                    ViewState["empListNormal"] = listEmpId;
                    BindEmployeeGrid();
                }
                else if (hdnAdvanceSearch.Value == "Advanced")
                {
                    if (ViewState["empListAdvanced"] != null)
                    {
                        listEmpId = (List<string>)ViewState["empListAdvanced"];
                    }
                    foreach (GridViewRow row in grdEmployee.Rows)
                    {
                        CheckBox chkRow = (CheckBox)row.FindControl("chkRow");
                        HiddenField hdnEmployeeID = (HiddenField)row.FindControl("hdnEmployeeID");
                        if (chkRow.Checked)
                        {
                            if (!listEmpId.Contains(hdnEmployeeID.Value))
                            {
                                listEmpId.Add(hdnEmployeeID.Value);
                            }
                        }
                        else
                        {
                            if (listEmpId.Contains(hdnEmployeeID.Value))
                            {
                                listEmpId.Remove(hdnEmployeeID.Value);
                            }
                        }
                    }
                    ViewState["empListAdvanced"] = listEmpId;
                    BindAdvancedEmployeeGrid();
                }
            }
            catch (Exception ex)
            { 
               
            }
        }

推荐答案

维护GridView内不同页面中选定CheckBox的状态 [ ^ ]


在GridView控件中选择多个复选框 [ ^ ]


这篇关于标题行复选框问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆