2016-05-16 12 views
-2

DataTableViewStateに保存しましたが、ページポストバック(グリッドビュー行編集のクリック)するとnullが返されます。ViewStateが空です。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

それはあなたがあなたのweb.configファイルは、ビューステートが

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

が答えてくれてありがとう有効になっているかどうかを確認する必要がない場合、

動作するはず
ViewState[dt]=ds.Tables[1]; 

方法ViewState.Addを交換してください私はViewState [dt] = ds.Tables [1]に変更しました。それはまだ動作しません。私もweb.configをチェックしてViewStateを有効にしました – mousie

+0

はあなたのメソッドReadXMLがnull以外の何かを返すのですか?多分それは問題です。 – thepanch

+0

はい私のReadXmlメソッドは項目のリストを返していますが、ページがviewstateの値をポストバックして、gridviewが失われたときには、 – mousie