我一直在寻找这个不起作用的原因,但我找不到一个。在我的asp.net应用程序中,我在c#中创建了一堆隐藏的输入,然后尝试在javascript中修改它们,然后再将它们调回服务器。
我的c#代码:
hidden3 = new HtmlInputHidden();
hidden3.ID = "total";
hidden3.Value = index.ToString();
this.Controls.Add(hidden3);
我的javascript代码:
mod = document.getElementById("total");
mod.value = newVal;
我可以将该值调回来,但不会改变。我还添加了原始值的警报,然后更改值后的值,它们都显示正常。但是,当我拉出值
时,代码永远不会改变为了获得价值,我正在使用它;
HtmlInputHidden hiddenControl = (HtmlInputHidden)FindControl("total");
答案 0 :(得分:2)
您是否已将结果输入标记验证为“总计”的ID?默认情况下,在Webforms中,实际的客户端ID以父ID(和分隔符)为前缀;这有助于确保ID是唯一的。获取真正客户端Id的一种方法是从控件的ClientID属性中提取值,但是只有在将值放入Controls集合后才能查看该值。
答案 1 :(得分:1)
这些控件是动态创建的,必须在每次回发中创建。但是,这些应该在Page_Load之前构建,最好是在Page_Init事件处理程序中。如果这些是在Page_Load中创建的,则视图状态已经处理,并且无法从发布的值设置控件。