当前位置:编程学习 > C#/ASP.NET >>

我用GridView分页,在全选中的问题!

#region 删除事件
    /// <summary>
    /// 删除Event
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button2_Click(object sender, EventArgs e)
    {

        for (int i = 0; i < this.gvitem.Rows.Count; i++)
        {
            bool isChecked = ((CheckBox)gvitem.Rows[i].FindControl("chkSelect")).Checked;
            if (isChecked)
            {
                string strID = ((Label)gvitem.Rows[i].FindControl("LblID")).Text;
               // DeleteRecord(Int32.Parse(strID));
                ItemBll.Delete(Int32.Parse(strID));
                pTipe.Visible = true;
                lblDel.Text = "删除成功";

            }
            else
            {
                pTipe.Visible = true;
                this.lblDel.Text = "请你选择要删除的服务功能!";
            }
        }
        ChkAll.Checked = false;
        gvitemBind();
    }
在最后一页中有几条记录,但在我点全选后就会生成很多空记录(所有记录加起来刚好一页),并被全选上.我不懂怎么处理才能不出现空记录 .高手帮帮~ --------------------编程问答-------------------- 请说清楚些 --------------------编程问答-------------------- 你的信息不能帮你解决问题,多说点。
--------------------编程问答--------------------
引用楼主 caishiwen 的帖子:
#region   删除事件 
        ///   <summary> 
        ///   删除Event 
        ///   </summary> 
        ///   <param   name= "sender "> </param> 
        ///   <param   name= "e "> </param> 
        protected   void   Button2_Click(object   sender,   EventArgs   e) 
        { 

                for   (int   i   =   0;   i   <   this.gvitem.Rows.Count;   i++) 
                { 
                        bool   isChecked   =   ((CheckBox)gvitem.Rows[i].FindControl( "chkSelect ")).Checked; 
                        if   (isChecked) 
                        { 
                                string   strID   =   ((Label)gvitem.Rows[i].FindControl( "LblID ")).Text; 
                              //   DeleteRecord(Int32.Parse(strID)); 
                                ItemBll.Delete(Int32.Parse(strID)); 
                                pTipe.Visible   =   true; 
                                lblDel.Text   =   "删除成功 "; 

                        } 
                        else 
                        { 
                                pTipe.Visible   =   true; 
                                this.lblDel.Text   =   "请你选择要删除的服务功能! "; 
                        } 
                } 
                ChkAll.Checked   =   false; 
                gvitemBind();         } 
在最后一页中有几条记录,但在我点全选后就会生成很多空记录(所有记录加起来刚好一页),并被全选上.我不懂怎么处理才能不出现空记录   .高手帮帮~

你绑定了多少就应该是多少 ?例如你一页显示40条,最后一页只有10条的话,那么GV也只有十行数据,而CheckBox对GV的行数操作的,也就是全选的时候是遍历整个GV,将它前面的CheckBox选中,你说的会多一些空白行我觉得这应该是你绑定的问题,Check管的只是存在行第一列的单选框,并不会无缘无帮增加你的行数的
我认为极有可能是你gvitemBind()绑定引起的问题,一般删除行后我喜欢把选中行的索引记录下来,然后直接移除掉,不喜欢重新绑定的 --------------------编程问答-------------------- up --------------------编程问答-------------------- 删除以后在把GRIDBIEW重新绑定一下。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,