ListView + DataPager控件不维护状态

时间:2011-06-20 19:25:08

标签: c# .net asp.net listview viewstate

我有一个ListView控件和一个DataPager控件(DataPager'PagedControlID设置为ListView'{{1} })。

碰巧我以这种方式将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(); } EnableViewState中设置trueListView也不会影响任何内容。

1 个答案:

答案 0 :(得分:4)

请看一下这篇博文:ASP.NET DataPager not paging after first 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()
}