Элементы управления ListView + DataPager не поддерживают состояние - PullRequest
2 голосов
/ 20 июня 2011

У меня есть элемент управления 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();

}

Почему это?Я не могу загрузить все снова, это то, чего я действительно хотел бы избежать ....

Спасибо

ПРИМЕЧАНИЕ: Даже установка EnableViewState в true в обоих ListView и DataPager ни на что не влияет.

1 Ответ

4 голосов
/ 21 июня 2011

Посмотрите на это сообщение в блоге: 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()
}
...