0

我有一个隐藏字段,用于存储有关网格视图中包含的 div 的可见性的信息。

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

然后我在javascript中设置值。

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

我可以看到它一直工作到回发点,其中值被清除。当我在gridview之外尝试相同的概念时,这似乎有效,但由于某种原因,数据绑定可能会清除值?无论如何要在回发之间保持隐藏字段中的值?

4

1 回答 1

0

网格视图清除了隐藏字段上的值。因此它不能用于存储我的 div 是否隐藏的值。

我通过创建一个 div“divhidden”解决了这个问题,该 div 添加了可用于设置由我的 javascript 编辑的可见性的隐藏值。

现在,关于隐藏哪些 div 的信息存储在这些隐藏值中的回发之间。

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";
    ....
}

}

于 2012-08-30T08:51:34.833 回答