我有一个隐藏字段,用于存储有关gridview中包含的div的可见性的信息。
<asp:HiddenField id="divhidden" runat="server" />
然后我在javascript中设置了值。
weekrow.getElementsByTagName('input')[0].value = 'visible';
我可以看到它正在进行回发,其中值被清除。当我在gridview之外尝试相同的概念时,这似乎有效,但由于某种原因,数据绑定可能会清除值?反正有没有将值保留在回发之间的隐藏字段中?
答案 0 :(得分:0)
gridview清除了隐藏字段上的值。因此,它无法用于存储隐藏或不隐藏的div的值。
我通过创建一个div“divhidden”来解决它,它添加了隐藏值,可用于设置我的javascript编辑的可见性。
隐藏div的信息现在存储在这些隐藏值的回发之间。
的aspx页: 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";
....
}
}