2016-05-16 6 views
-2

Моя проблема заключается в том, что я сохраняю DataTable на ViewState, но когда страница postbacks (редактирование строк в сетке), она возвращает null.ViewState is Empty OnPostBack

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     DataSet ds = new DataSet(); 
     ds.ReadXml("c:\\teste.xml"); 
     gv_xml.DataSource = ds.Tables[1]; 
     gv_xml.DataBind(); 
     ViewState.Add("dt", ds.Tables[1]); 
     SaveViewState(); 
    } 
} 

protected void gv_xml_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    gv_xml.EditIndex = e.NewEditIndex; 
    gv_xml.DataSource = (DataTable)ViewState["dt"]; 
    gv_xml.DataBind(); 
} 

Любая помощь будет оценена по достоинству.

ответ

0

Заменить метод ViewState.Add для

ViewState[dt]=ds.Tables[1]; 

Это должно работать, если это не нужно проверить, если ваш web.config имеет ViewState включен

 <system.web> 
<pages enableViewState="false" /> 
+0

Спасибо за ответы , но я изменился на ViewState [dt] = ds.Tables [1]; и он все еще не работает. Я также проверил web.config и ViewState включен. – mousie

+0

- это ваш метод ReadXML, возвращающий что-то отличное от нуля? возможно, это проблема. – thepanch

+0

Да, мой метод ReadXml возвращает список элементов, но когда страница возвращает данные в представлении и в gridview, теряется – mousie