zoukankan      html  css  js  c++  java
  • datapager分页问题(点击两次)

    今天看了一下ListView和DataPager配合做数据分页的教程,感觉很爽很方便,用在自己的项目上面时却出现了问题,具体表现在点击上一页、下一页或者数字跳转页面时通常要点两下才能有反应,而且有时候乱跳页。 

    我开始测试的代码是这样的:

    public partial class ListViewTest : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    if (!Page.IsPostBack)
                BindData();
        }
        
        
    protected void BindData()
        {
            DBDataContext db 
    = new DBDataContext();
            var ds 
    = db.Category;
            ListView1.DataSource 
    = ds;
            ListView1.DataBind();
            db.Dispose();
        }
    }

    出现如开始提及的问题,找了半天原因也没有找到。后来在国外的一个论坛上找到了同病相怜的人,有专家给出了一个解决方案。把Page_Load里的数据绑定移到Page_PreRender中,也就是:

    public partial class ListViewTest : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    //if (!Page.IsPostBack)
            
    //    BindData();
        }

        
    protected void Page_PreRender(object sender, EventArgs e)
        {
            BindData();
        }
        
        
    protected void BindData()
        {
            DBDataContext db 
    = new DBDataContext();
            var ds 
    = db.Category;
            ListView1.DataSource 
    = ds;
            ListView1.DataBind();
            db.Dispose();
        }
    }

    试了一下分页果然正常了。难道是Page_Load来的太迟?不得而知。另外,还有一种方法同样可行:

    public partial class ListViewTest : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    if (!Page.IsPostBack)
                BindData();
        }

        
    protected void Page_PreRender(object sender, EventArgs e)
        {
            
    //BindData();
        }

        
    protected void ListView1_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
        {
            DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, 
    false);
            BindData();
        }

        
    protected void BindData()
        {
            DBDataContext db 
    = new DBDataContext();
            var ds 
    = db.Category;
            ListView1.DataSource 
    = ds;
            ListView1.DataBind();
            db.Dispose();
        }
    }
  • 相关阅读:
    介绍本近期出的好书《软件调试》
    【转贴】Ogre的官僚主义批判
    Module切换,如何实现loading效果
    cacheAsBitmap = ‘true' 可以降低cpu,提高效率?
    设相对布局,则x,y更改无效 horizontalCenter="0" verticalCenter="120"
    flex 1119错误 找不到属性 static 解决方法,编译选项中选中 不启用rsl
    as3的get,set方法实现
    flex的Release编译会把trace也编译进去,
    Alert按钮的事件侦听
    一天编程发现的css名称问题,不支持下划线
  • 原文地址:https://www.cnblogs.com/wwb0111/p/3098925.html
Copyright © 2011-2022 走看看