在网格视图中保留分页时的Chck框值 [英] Preserving Chck box Value ON Paging in Grid View

查看:67
本文介绍了在网格视图中保留分页时的Chck框值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在执行以下代码,如何在网格视图中保留复选框状态时的分页,以及如何找到选中的gridRow复选框以保存在保存按钮上,请同时检查我的代码,并让我知道我的代码质量.提前谢谢.
这是aspx页面gridview的代码

I am having following code how can preserve check box state oon paging in grid view and how can i find the check box checked gridRow to save on save button click please review my code as well and let me know my code quality as well. Thanks in advance.
This is the aspx page gridview code

asp:GridView id="GridView1" AllowSorting="true" AutoGenerateColumns="false" runat="server" AllowPaging="True" DataKeyNames="branch_id"   OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="2">
<Columns>
<asp:TemplateField HeaderText="Select Student">
<ItemTemplate>
<asp:CheckBox id="Chek"  runat="server" Text="select" ></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Enrollment No." DataField="enrollment_no" />
<asp:BoundField HeaderText="Course Name" DataField="course_name"/>
<asp:BoundField  HeaderText="Branch Name"  DataField="branch_name"/>
<<asp:BoundField  HeaderText="Mobile" DataField="mobile"/>
<asp:BoundField HeaderText="Name"  DataField="first_name"/>
<asp:BoundField  HeaderText="Surname" DataField="last_name" />
</Columns>

</asp:GridView>





这是确定按钮,以填充数据网格





this is the ok button to fill the datagrid

protected void Btnok_Click(object sender, EventArgs e)
   {

       try
       {
           if (Page.IsValid)
           {
               int passoutYear = Convert.ToInt32(passout.SelectedValue);
               int courseList = Convert.ToInt32(course.SelectedValue);
               StringBuilder sb = new StringBuilder();
               string sep = "";




               foreach (ListItem li in Branch.Items)
               {
                   if (li.Selected)
                   {
                       sb.Append(sep + li.Value);
                       sep = ",";
                   }
               }

               DataTable dt = placedStudentManager.GetPlacedStudentList(sb, passoutYear, courseList);
               if (dt != null && dt.Rows.Count != 0)
               {
                   GridView1.DataSource = dt;
                   GridView1.DataBind();
                   GridView1.Visible = true;
                   Btnsave.Visible = true;
                   ViewState["dt"] = dt;
               }
               else
               {
                   noRecordExistOnOkButton.Text = "No Record Exist To Be Inserted For Recruited Students";
                   Btnsave.Visible = false;
                   GridView1.Visible = false;
               }
           }
       }
       catch (Exception ex)
       {
           COMMON.logger.Error("Error On Button Btnok_Click:CompanySelected.aspx.cs ", ex);
       }
   }


这是保存按钮


it''s the save button

protected void Btnsave_Click(object sender, EventArgs e)
    {

        try
        {
            if (Page.IsValid)
            {
                int passoutYear = Convert.ToInt32(passout.SelectedValue);
                int companyId = Convert.ToInt32(company.SelectedValue);
                int courseId = Convert.ToInt32(course.SelectedValue);
                string package = txtpackage.Text.Trim();
                string venu = txtvenue.Text.Trim();

                DateTimeFormatInfo dateInfo = new DateTimeFormatInfo();
                dateInfo.ShortDatePattern = "dd/MM/yyyy";
                DateTime date = Convert.ToDateTime(vistDate.Text.Trim(), dateInfo);

                DataTable gridviewTbl = new DataTable();
                DataColumn dc1 = new DataColumn("company_id");
                DataColumn dc2 = new DataColumn("course_id");
                DataColumn dc3 = new DataColumn("branch_id");
                DataColumn dc4 = new DataColumn("student_enrollment");
                DataColumn dc5 = new DataColumn("company_visit_date");
                DataColumn dc6 = new DataColumn("venu");
                DataColumn dc7 = new DataColumn("package");
                DataColumn dc8 = new DataColumn("passout_year");
                gridviewTbl.Columns.Add(dc1);
                gridviewTbl.Columns.Add(dc2);
                gridviewTbl.Columns.Add(dc3);
                gridviewTbl.Columns.Add(dc4);
                gridviewTbl.Columns.Add(dc5);
                gridviewTbl.Columns.Add(dc6);
                gridviewTbl.Columns.Add(dc7);
                gridviewTbl.Columns.Add(dc8);

                if (GridView1 != null && GridView1.Rows.Count != 0)
                {
                    int rowCount = GridView1.Rows.Count;
                    int i = 0;
                    foreach (GridViewRow row in GridView1.Rows)
                    {

                        CheckBox cb = (CheckBox)row.FindControl("Chek");

                        if (cb != null && cb.Checked)
                        {
                            string enrollmetNo = GridView1.Rows[i].Cells[1].Text.ToString();
                            int branchId = Convert.ToInt32(GridView1.DataKeys[0].Value);
                            gridviewTbl.Rows.Add(companyId, courseId, branchId, enrollmetNo, date, venu, package, passoutYear);
                        }
                        i++;
                    }

                    if (gridviewTbl.Rows.Count != 0)
                    {
                        Boolean b = placedStudentManager.SaveSelectdStudent(gridviewTbl);
                        gridNotExist.Text = "Records Successfully inserted";
                    }

                    else
                    {
                        gridNotExist.Text = "Please check the record to be inserted";
                        Btnsave.Visible = true;
                        GridView1.Visible = true;
                    }
                }
                else
                {
                    gridNotExist.Text = "Please Select The Recruited Student, so click the ok button first ";
                }

            }
            else 
            {
                GridView1.Visible = true;
                Btnsave.Visible = true;
            }
        }
        catch (Exception ex)
        {
            COMMON.logger.Error("Error On Button Btnsave_Click:CompanySelected.aspx.cs ", ex);
        }

    }


现在暂停事件


now pagging event

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
   {
       GridView1.PageIndex = e.NewPageIndex;
       GridView1.DataSource = (DataTable)ViewState["dt"];
       GridView1.DataBind();
       GridView1.Visible = true;
       Btnsave.Visible = true;
       // StringBuilder str=(StringBuilder)ViewState["chk"];
       //foreach (GridViewRow row in GridView1.Rows)
       //{
       //}



}



}

推荐答案

也许您需要查看此 http://msdn.microsoft.com/en-us/library/aa479347.aspx [ ^ ]

另外,在保存方法中,为什么要创建一个新的DataTable并从网格中填充它呢?您已经将网格绑定到DataTable.
Perhaps you need to review this http://msdn.microsoft.com/en-us/library/aa479347.aspx[^]

Also, in your save method why are you creating a new DataTable and populating it from the grid? You have the grid bound to a DataTable already.


这篇关于在网格视图中保留分页时的Chck框值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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