2014-09-26 53 views
0

我很新,我想問一個問題。請參閱html和代碼隱藏。EnableViewState for html標記

HTML

<ul id="menu" runat="server" EnableViewState="True"></ul> 

代碼隱藏

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       var liItem = new HtmlGenericControl("li"); 
       var aItem = new HtmlGenericControl("a"); 

       liItem.Attributes.Add("class", "test"); 
       aItem.Attributes.Add("href", "#"); 
       aItem.InnerText = "please work"; 
       liItem.Controls.Add(aItem); 
       menu.Controls.Add(liItem); 
      } 
     } 

一旦回傳,儘管我已經啓用了視圖狀態的UL數據丟失。我記得它上次有效,但現在不是。任何人都可以建議?非常感謝

回答

1

發生這種情況是因爲您通過第一次加載(!IsPostback)動態添加數據,此後(當Page_Load再次運行時)數據正在丟失。你必須記住,EnableViewState是一個ASP.NET特定的屬性,所以它只會在服務器控件從System.Web.UI.Control

的唯一方法繼承工作,你可以做到這一點是通過對每一個網頁或者創建HTML標籤加載(即刪除您的!IsPostBack支票)

或向支持ViewState(Gridview,ListView,Label,Button等)的頁面添加ASP.NET控件。

+0

謝謝我現在明白了... – xiaobao 2014-10-04 09:58:38