您的位置:首页 > 其它

datapager分页问题(点击两次)

2012-05-28 17:37 405 查看
今天看了一下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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: