【发布时间】:2014-06-16 19:26:42
【问题描述】:
我在为 ASP.NET 4.5 中的 HiddenField 设置值时遇到了一些问题。
据我所见,我尝试了以下方法,但没有任何运气:
在 ASPX 中:
<asp:HiddenField ID="HiddenField" runat="server" value="" />
<script type="text/javascript">
function SetHiddenField() {
var vv = "HELLO WORLD";
document.getElementById('<%=HiddenField.ClientID%>').value = vv;
}
</script>
在代码隐藏中:
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "SetHiddenField", "SetHiddenField();", true);
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "alert", "alert('" + HiddenField.ClientID + "');", true);
这会在 ClientID 中提醒垃圾。
我尝试过的另一个解决方案如下。
在 .ASPX 中:
<asp:HiddenField ID="HiddenField" runat="server" value="" />
<script type="text/javascript">
function SetHiddenField() {
var vv = "HELLO WORLD";
document.getElementById('HiddenField').value = vv;
}
</script>
这里的一个问题是 IntelliSense 中不存在 .value,只有 .ValueOf。
在代码隐藏中:
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "SetHiddenField", "SetHiddenField();", true);
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "alert", "alert('" + HiddenField.Value + "');", true);
什么都没有发生,可能是 JavaScript 中的错误,因为没有显示警报。
谁能指点我正确的方向,好吗?
【问题讨论】:
-
在第二个示例中,除非您在隐藏字段
ClientIDMode="Static"上设置属性,否则您仍然必须通过客户端 ID 获取元素
标签: c# javascript asp.net