zoukankan      html  css  js  c++  java
  • (转)无效的CurrentPageIndex 值。它必须大于等于0 且小于PageCount 解决方案

    第一种:
    
    当以某种条件来查询的时候 其中的结果是以一个结果为条件的datagrid分页 采用字查询到条件下加入如下代码:
    
                         
    
             
    [c-sharp] view plaincopyprint?
    
        protected void btn_Search_Click(object sender, EventArgs e)  
           {  
               if (this.TextBox1.Text == "")  
               {  
                   app_java.Create();  
                   app_java.MsgBox("提示:请输入您要查询的标题的关键字!");  
                   app_java.Dispose();  
                   TextBox1.Focus();  
               }  
               if (DGRUserList.CurrentPageIndex > 0)  
               {  
                   DGRUserList.CurrentPageIndex = 0;  
               }  
               string sql = "select * from tb_carproduct where cp_title like '%" + this.TextBox1.Text.Trim().ToString() + "%' and  cp_type='" + Request.QueryString.Get("id").ToString() + "'";  
               db.BindDataGridDs(sql, DGRUserList);  
           }  
    
            
    
    第二种:
    
    是在删除datagrid最后一条记录的时候出现在这种异常加入一下代码:
    
           当删除数据库中数据并在数据绑定之前,判断是否需要翻页,以纠正CurrentPageIndex的错误。
    实现:
            在DataGrid_Delete方法中,添加如下代码:      
            //正常删除数据库中的数据            
            //判断
            if( DataGrid1.Items.Count == 1 && DataGrid1.CurrentPageIndex > 0 )
            {
                    DataGrid1.CurrentPageIndex--;
            }       
            //重新绑定数据
            BindGrid();
    
    第三种:
    
        是在可能我们没有使用DataGrid内建的删除方式,可能通过CheckBox使得每次可以删除多条记录
    思路:
            其实思路差不多,只不过要获取一次一共删除多少记录,并保存于一个变量中,然后将DataGrid1.Items.Count和其比较,正如上面的“DataGrid1.Items.Count == 1”,这样就能判断是否需要翻页了。
    实现:
            //获取删除记录的总数
            int count = 0;
            foreach( DataGridItem item in DataGrid1.Items )
            {
                    if( item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem )
                    {
                            CheckBox ckbox = item.FindControl(“CheckBox1“ ) as CheckBox;//?????????????
                            if( ckbox != null && ckbox.Checked )
                                    ++ count;
                    }
            }
            //判断
            if( count == DataGrid1.Items.Count && DataGrid1.CurrentPageIndex > 0 )
            {
                    -- DataGrid1.CurrentPageIndex;
            }
            //重新绑定数据
            BindGrid();
    
  • 相关阅读:
    问:Linux下Chrome标题栏中文乱码
    通过printf设置Linux终端输出的颜色和显示方式
    连HTTPS都有漏洞,这么不安全的互联网我们还要继续用吗?
    为什么TCP连接不可靠
    TCP发送接口的返回值
    /proc/uptime详解
    Linux Kernel Version Numbering
    Understanding Linux /proc/cpuinfo
    Android Tips: Best Practices for Using Alpha
    如何让LinearLayout也有类似Button的点击效果?
  • 原文地址:https://www.cnblogs.com/wangyt223/p/3447989.html
Copyright © 2011-2022 走看看