CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

数据查询出处

楼主huaguo932(叛逆羁子)2004-05-02 13:16:32 在 .NET技术 / ASP.NET 提问

在一个数据表点击"下一页"时,然后输入需要查询的条件,再按"查询"按钮时,  
  有如下报错:  
              无效的   CurrentPageIndex   值。它必须大于等于   0   且小于   PageCount。  
    其代码如下:  
  protected   void   BindGrid()            
  {  
  SqlConnection   Conn=new   SqlConnection(ConfigurationSettings.AppSettings["edu"]);  
  string   sql="select   *   from   stu_s3";  
  SqlDataAdapter   myCommand=new   SqlDataAdapter(sql,Conn);  
  DataSet   ds=new   DataSet();  
  DataGrid1.DataSource   =   CreateDataSource();  
   
   
  myCommand.Fill(ds,"stu_s3");  
  DataGrid1.DataSource=ds.Tables["stu_s3"].DefaultView;  
  DataGrid1.DataBind();  
  ShowStats();  
  }  
  DataView   CreateDataSource()  
  {  
  SqlConnection   myconnection   =new   SqlConnection(ConfigurationSettings.AppSettings["edu"]);  
  string   selectCmd1="select     *     from     stu_s3   ";  
  SqlDataAdapter   mycommand=new   SqlDataAdapter(selectCmd1,myconnection);  
  myconnection.Open();  
  DataSet   ds   =new   DataSet();  
  mycommand.Fill(ds,"stu_s3");  
  return   ds.Tables["stu_s3"].DefaultView;  
                         
   
  }  
  protected   void   MyDataGrid_Page(object   source,   System.Web.UI.WebControls.DataGridPageChangedEventArgs   e)  
  {  
  BindData();  
  }  
  public   void   BindData()  
  {  
  DataView   dv   =CreateDataSource();  
   
  if   (!IsPostBack)  
  {  
  recordcount=dv.Count   ;   //获取DataView中的记录的数量  
  pagecount=recordcount   %   DataGrid1.PageSize;    
  if   (recordcount   %   DataGrid1.PageSize!=0)  
  {  
  pagecount++;  
  }  
   
  lbl_pagecount.Text=pagecount.ToString();  
  lbl_currentpage.Text="1";   //默认显示时当前页面数为:1  
  }  
  DataGrid1.DataSource=dv;  
  DataGrid1.DataBind();  
   
  }  
   
  protected void   PagerButtonClick(Object   sender,   EventArgs   e)    
  {  
  //   Used   by   external   paging   UI.  
  String   arg   =   ((LinkButton)sender).CommandArgument;  
                        DataGrid1.CurrentPageIndex=0;  
  switch(arg)  
  {        
   
  case   ("next"):  
  if   (DataGrid1.CurrentPageIndex   <   (DataGrid1.PageCount   -   1))  
  DataGrid1.CurrentPageIndex   ++;  
  break;  
  case   ("prev"):  
  if   (DataGrid1.CurrentPageIndex   >   0)  
  DataGrid1.CurrentPageIndex   --;  
  break;  
  case   ("last"):  
  DataGrid1.CurrentPageIndex   =   (DataGrid1.PageCount   -   1);  
  break;  
  default:  
   
  //   Page   number.  
  DataGrid1.CurrentPageIndex   =   Convert.ToInt32(arg);  
  break;  
  }  
  BindGrid();  
  }  
   
  protected   void   ShowStats()    
  {  
  lbl_currentpage.Text   =   "当前页是第   :   "+   (DataGrid1.CurrentPageIndex+(int)1)+"     页";  
  lbl_pagecount.Text   =   "该数据总共有:   "   +     DataGrid1.PageCount+"   页";  
  }  
   
  private   void   page_Click(object   source,   System.Web.UI.WebControls.DataGridPageChangedEventArgs   e)  
  {  
  DataGrid1.CurrentPageIndex=e.NewPageIndex;  
  BindGrid();  
  }  
   
   
  敬请各位大侠求助.  
  问题点数:0、回复次数:2Top

1 楼smx717616(又笨又不努力)回复于 2004-05-02 13:26:09 得分 0

无效的   CurrentPageIndex   值。它必须大于等于   0   且小于   PageCount  
  对就是这了,下一页前判断一下  
  CurrentPageIndex   <PageCount   and   CurrentPageIndex   >0,c#我不懂Top

2 楼cuike519(I will be back!)回复于 2004-05-02 13:31:19 得分 0

先判断页面的数量PageCount是否大于当前的页码!如果嫌麻烦可以在每次执行查询以后将CurrentPageIndex变成第一页(这样最省事)!Top

相关问题

  • 数据查询
  • 数据查询
  • 数据查询
  • 数据查询
  • 数据查询(vb)
  • 数据库查询!
  • 数据库查询
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询~~~~

关键词

  • datagrid
  • 查询
  • ds
  • s3
  • datagrid1
  • currentpageindex
  • stu
  • pagecount
  • createdatasource
  • bindgrid

得分解答快速导航

  • 帖主:huaguo932

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo