在ASP.Net With C# 中使用 DataGrid 控件分页展示数据

ASP.Net With C# 中使用 DataGrid 控件分页展示数据。

问题一:自动显示 当前页数和总页数

也曾经看到能实现相关功能的代码,但是是使用 Visual Studio.NET  开发环境开发的,代码很长,我的能力低看不懂,所以就自己琢磨了一个:

得到当前页数并显示数据

void BindGrid()
{
SqlConnection Conn;
Conn = new SqlConnection("连接数据库");
String strSQL = "SELECT * FROM 表名  WHERE 条件 ";
SqlCommand Comm = new SqlCommand(strSQL,Conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = Comm;
DataSet ds = new DataSet();
Conn.Open();
da.Fill(ds,"字段");
dg.DataSource = ds.Tables["字段"].DefaultView;
dg.DataBind();
Conn.Close();
//因为是从第零页开始的,为了符合习惯所以加1
page= dg.CurrentPageIndex+1;
ttpage();
Label1.Text="第"+page.ToString()+"页"+ "   共"+tpage.ToString()+"页";
}

 

void ttpage()
{
//显示总页数,每页10条记录
string SQL = "SELECT count(*) as one FROM 表名  WHERE 条件 ";
SqlConnection Conn;
Conn = 连接字符串
Conn.Open();
SqlCommand Comm = new SqlCommand(SQL,Conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = Comm;
SqlDataReader dr=Comm.ExecuteReader();
              if(dr.Read())
                       {
                      string x=dr["one"].ToString();
                      //得到总记录数
                     shu=Convert.ToInt32(x);
                       }
                 Conn.Close();

//如果能被整除
if ((shu%10)==0)
              {
             //总页数 
             tpage=shu/10;
              }
else
              {
             //不满一页的算一页
             tpage=shu/10+1;
             }
}

问题2:用 DataGrid进行分页处理后,删除最后一行数据发生错误

原因:函数找不到当前页的索引,因为当前页已经不存在

解决办法:

//如果当前索引大于0
if (dg.CurrentPageIndex > 0)
       {
      //得到当前最大记录数shu
//代码略*****************************************   

 //如果记录数能被整除,说明当前索引页已经不存在,减一得到前一页索引,显示上一页内容
  if ((shu%10)==0)
          {
        dg.CurrentPageIndex -=1;}
        //显示数据
        BindGrid();
         } 
else
       {
      BindGrid();
     }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值