Динамический GridView AllowPaging возвращает ошибку на DataBind - PullRequest
3 голосов
/ 18 августа 2011

Я добавил GridView в PlaceHolder на своей веб-странице и настраиваю его источник данных для запроса linq. Проблема в том, что когда управление запускается, хотя gv.DataBind(); оно взорвется мне в лицо, возвращая объект не установлен, бла-бла-бла ошибка.

Трассировка стека выглядит как

в System.Web.UI.WebControls.GridView.get_StateFormatter () в System.Web.UI.WebControls.GridView.BuildCallbackArgument (Int32 pageIndex) в System.Web.UI.WebControls.GridView.CreateNumericPager (строка TableRow, PagedDataSource pagedDataSource, логический addFirstLastPageButtons) в System.Web.UI.WebControls.GridView.InitializePager (строка GridViewRow, Int32 columnSpan, PagedDataSource pagedDataSource) ....

и мой код

var query = from list in dc.mytable
            select list;

gv.DataSource = query.ToList();
gv.DataBind();

1 Ответ

7 голосов
/ 30 августа 2011

Поработав некоторое время над решениями, я пришел к предложению, которое сработало, и я поделюсь с вами, если вам нужно. К сожалению, я закрыл браузер и не помню, где увидел его, чтобы отдать должное парню, который решил мою проблему.

Я публикую это здесь, потому что я не нашел здесь никакого ответа, который бы решил мою проблему.

Причиной этой проблемы было то, что, поскольку GridView добавляется динамически, существует некоторая проблема с StateFormatter, который еще не установлен (или что-то в этом роде), поэтому все, что требуется для решения этой проблемы, - это добавление обработчика событий для Загрузка события и перемещение gv.DataBind (); есть:

gv.DataSource = query;

gv.Load += (s, e) => {
  gv.DataBind();
}

Работает как шарм:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...