我用一个session缓存一个datatable ,然后传给gridview,用的翻页是gridview自带的,我要进行的操作是添加数据到session中,由于开始要定义datatable的列,所以我开始放入session的是一个空数据集,然后当取到数据后,用datatable.copy()的方式存入session中,比如说我有25行数据,每页显示12行数据,结果是只显示第一页的,翻页的按钮却看不见了,我查看了当前页的源代码,发现gridview已经创建了分页按钮的行,但是页面上却没显示,但如果是开始就将数据插入到session中(也就是开始的时候不放入空数据集,直接放一个有数据的datatable),则可以正常显示,我不知道是什么原因,麻烦高手帮忙解决下~~~
strSql=select 字段1。字段N from 表名;
DataTable dt = SqlHelper.ExcuteDataTable(strSql + " where 1=2 ");
Session["So"] = dt;
BindCard();
然后这是BindCard()方法
private void BindCard()
{
if (Session["So"] != null)
{
DataTable dtSelected = (DataTable)Session["So"]; GridView1.DataSource = dtSelected;
GridView1.DataBind();
}
} protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindCard();
}最后是加载数据
Session["So"] = dtCard.Copy();由于用的button是server控件,可以触发事件的时候是肯定会使页面重新加载的,所以不存在没有绑定数据的问题
就是datatable dtCard = SqlHelper.ExcuteDataTable(sql语句);
可是datatable 不行