gridview сохраняет данные в viewstate? - PullRequest
3 голосов
/ 31 марта 2011

привет, я связываю DataTable с сеткой.я хочу использовать DataTable в некотором событии обратной передачи, и я хочу использовать viewstate.gridview сохраняет данные в viewstate?если нет, каков наилучший способ сделать это.

(полная история: у меня есть собственное представление сетки, полученное из стандартного вида сетки asp.net, и я помещаю кнопку в заголовок для экспорта данных в Excel, я хочуиспользовать данные, сохраненные в viewstate, для экспорта в excel)

спасибо

Ответы [ 3 ]

6 голосов
/ 31 марта 2011

Краткий ответ - да, информация, отображаемая в GridView, так же, как текущее состояние любого элемента управления, хранится в ViewState. Однако я не думаю, что легко, если вообще возможно, получить эти данные самостоятельно из коллекции ViewState, доступной для WebControls. Вместо этого ASP.NET заполняет значения из ViewState перед запуском обработчиков событий в жизненном цикле, поэтому, если вы запросите серверную часть объекта GridView в обработчике, вы должны увидеть текущие значения ячеек.

4 голосов
/ 31 марта 2011

Существуют и другие способы, такие как:

1: сохранение таблицы данных в сеансе

2: в зависимости от того, как часто будет использоваться эта кнопка экспорта, и объема извлекаемых данных, выможет сделать вызов БД.

0 голосов
/ 26 октября 2012

Ниже заявление прояснит идею:

Это ясно показывает, что данные gridview хранятся в viewstate:

//Binding GridView
gv_Settlements.DataSource = dt_settlements;
gv_Settlements.DataBind();

//Retrieving Data
DataTable dt = (DataTable)gv_Settlements.DataSource;
...