2012-06-07 20 views
0

我有一個隱藏域,用於存儲關於gridview中包含div的可見性的信息。在gridview中保存可見div的狀態

<asp:HiddenField id="divhidden" runat="server" /> 

然後我在javascript中設置值。

weekrow.getElementsByTagName('input')[0].value = 'visible'; 

我可以看到它工作到一個回傳點,其中值被清除。這似乎工作時,我試圖在gridview之外的相同的概念,但由於某種原因,也許數據綁定清除值?無論如何要在回傳之間的隱藏字段中保留值?

回答

0

gridview清除了hiddenfields上的值。因此它不能用於存儲我的div隱藏或不隱藏的值。

我解決了它通過創建一個div「divhidden」,添加hiddenvalues,可用於設置我的JavaScript編輯的可見性。

divs隱藏的信息現在存儲在這些隱藏值的回發之間。

aspx-page: hiddenDiv = new System.Web.UI.HtmlControls.HtmlGenericControl(「DIV」); hiddenDiv.ID =「hiddenValuesDiv」; PlanningForm.Controls.Add(hiddenDiv);

 Label weekLabel = row.FindControl("weeknr") as Label; 
     if (weekLabel != null && PlanningForm.FindControl("visiblediv" + weekLabel.Text) == null) { 

      HiddenField divvisible = new HiddenField(); 
      divvisible.ID = "visiblediv" + weekLabel.Text; 
      //Open the first two divs 
      if (!Page.IsPostBack) { 
       if(openDivCount < 2) 
       divvisible.Value = "block"; 
       openDivCount++; 
      } 
      hiddenDiv.Controls.Add(divvisible); 
     } 

和JavaScript代碼:

function expandcollapse(obj, row) { 
var hidden = document.getElementById(GetClientId('visible' + obj)); 
var warningonweek = weekrow.getElementsByTagName('td')[0].getElementsByTagName('img') 
if (div.style.display == "none") { 
    div.style.display = "block"; 
    .... 
} 
else { 
    div.style.display = "none"; 
    .... 
} 

}