ListView+DataPager控件不维护状态

本文关键字:状态 维护 控件 ListView+DataPager | 更新日期: 2023-09-27 17:59:35

我有一个ListView控件和一个应用于它的DataPager控件(DataPager'PagedControlID设置为ListView'ID)。

碰巧我以这种方式将ListView绑定到我的数据源(一个数组):

protected void Page_Load(object sender, EventArgs e) {
   if (!this.IsPostBack) {
      MyType[] x = ...; /* Returns an array of MyType */
      this.MyLV_ListView.DataSource = x;
      this.MyLV_ListView.DataBind();
   }
}

我开始并转到页面,它页面!但当我选择另一个页面时,所有内容都是空的,我的意思是有一定的数量或条目,但重复的区域是空的。

如果我取消后返回条件,这是可以的!

protected void Page_Load(object sender, EventArgs e) {
   MyType[] x = ...; /* Returns an array of MyType */
   this.MyLV_ListView.DataSource = x;
   this.MyLV_ListView.DataBind();
}

为什么会这样?我无法再次加载所有内容,这是我非常想避免的事情。。。。

谢谢

注意:即使在ListViewDataPager中将EnableViewState设置为true也不会影响任何内容。

ListView+DataPager控件不维护状态

看看这篇博客文章:ASP.NET DataPager在第一次PostBack 之后没有分页

这里还有一些你可以尝试的东西:

OnPreRender事件期间的数据绑定

protected override void OnPreRender(EventArgs e)
{
    this.MyLV_ListView.DataBind();
    base.OnPreRender(e);
}

尝试处理ListView的PagePropertiesChanged事件

MyLV_ListView_PagePropertiesChanged(object sender, EventArgs e)
{
    this.MyLV_ListView.DataSource=someDatasource;
    this.MyLV_ListView.DataBind()
}