页面可以正常分页,但点击分页页吗后,页面却连datagrid都不显示了,感觉像没有绑定数据,但我在系统的
private void dgdList_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgdList.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
已经重新绑定了数据,但点击后返回的页面却是连datagrid都没有了,只剩下一些查询选项了,我对比了我可以分页的文件,文件内容基本一样,而且也查看了事件的注册代码,也有啊。
asp.net 1.1,请问这是什么故障?
谢谢。

解决方案 »

  1.   

    把BindGrid()和page_load的代码贴出来
      

  2.   

    在Load事件中是否加了这个?
    if(!IsPostBack)
    {
       BindGrid();
    }
      

  3.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if (!Page.IsPostBack)
    {
    string strSql = @"SELECT UserName, UserReservedDate from rep_qq where hasIgnored='0' ";
    DataSet ds = new DataSet();
    SqlObject so = new SqlObject();
    ds = so.ExecuteSQL(strSql);
    so.CloseConnection();
    Session["QueryData"] = ds;
    BindGrid();
    }
    } private void BindGrid()
    {
    try
    {
    objDataSet = (DataSet)Session["QueryData"];
    dgdList.DataSource = objDataSet;
    dgdList.DataBind();
    }
    catch(Exception e)
    {
    Response.Write(e.Message);
    }
    }
      

  4.   

    现在的问题是Postback后不显示数据了,是否是.net的bug
    其它还要两个页面基本是拷贝过去的,都可以执行,值得注意的是这个页面开始是可以分页的,今天突然发现不行了,我记不清什么时候修改过,但系统就是不执行分页了
      

  5.   

    你出现的情况就是在翻页的时候你的datagrid没有绑定数据,因为在你翻页的时候页面要进行回传,这样你的datagrid的数据源丢失,所以就什么都显示不出来
    处理的情况有两种:
      1、在翻页事件里面重新找好你要绑定的数据源,然后绑定。
      2、在页面开始就找到数据源,然后SESSION,在翻页的时候再dgdList.DataSource=取出你SESSION里面的数据,再BindGrid();(不推荐,这样服务器的开销太吓人!!)多看看资料!!!
      

  6.   

    为什麽要放在Session[""]里呢?
    直接用objDataSet = ds;多好
      

  7.   

    “Postback后不显示数据了,是否是.net的bug”
    你最好把你的程序发上来,让大家帮你分析,如果没绑定数据是你程序的问题,如果程序是对的,建议你重新装你的.NET开发环境!!!
      

  8.   

    “Postback后不显示数据了,是否是.net的bug”
    你最好把你的程序发上来,让大家帮你分析,如果没绑定数据是你程序的问题,如果程序是对的,建议你重新装你的.NET开发环境!!!
      

  9.   

    to  wwp4787(wwp4787)
    的确开销吓人,已经快150mb了。唉。
    不过我的其它页面也是采用这个方法,但可以完成重新绑定,这个方法我是看飞刀的亲密接触的方法做的。另外,我的PageIndexChange事件就有绑定的操作啊。
    放入session只是方便,没有考虑开销问题。另外由于特殊行业业务的问题不可以公开ItemBound部分的代码。
      

  10.   

    呵呵这个问题很老火,如果你是做的B/S机构的话,那么在很多人同时访问一个页面的时候你的SESSION里面的数据将成几何增长!!
    如果你的BindGrid();函数里面绑定操作没问题的话,要想下是不是服务器负载不了了!!
      

  11.   

    我觉得你应该从“服务器事件”这个角度去考虑一下,看看是不是改变了分页按钮的什么属性,最有可能的就是那个autopostbak属性出问题,另外,关于数据集,我建议直接设一个私有变量,然后在各个方法中引用就是了,例如:private DataSet ds=new DataSet()
      

  12.   

    已经删除了Session了,另外我是设置了EnableViewState=False有关系吗?
      

  13.   

    找出问题了,竟然是viewstate的原因!:(郁闷,我为了减少代码输出设置了False,却没有想到使分页功能丧失了。唉。多谢大家参与讨论,谢谢。
    马上揭帖给分。