在回发后设置隐藏字段值

时间:2010-07-29 21:38:51

标签: javascript asp.net asp.net-ajax postback hidden-field

我有一个组件可以确定回发事件的值。

protected void Button_Click(object s, EventArgs e)
{
   HiddenField.Value = 5;
}

当然还有更多的参与价值,但HiddenField是一个带有runat = server set的asp:HiddenField控件。我有我的javascript:

var id = $("#<%= HiddenField.ClientID %>").val();

javascript中的代码设置为仅在回发发生后运行(另一个客户端点击事件),目的是通过QueryString将隐藏字段值传递给另一个URL(因为我无法进行响应重定向)在回发上,客户希望它在不同的页面中。)

我尝试添加:

ScriptManager.RegisterHiddenField(HiddenField, "Value", string.Empty);

到代码的!Page.IsPostback部分,但在运行javascript时仍未设置ID。

2 个答案:

答案 0 :(得分:0)

Here是一个类似的问题。也许你可以用它来修改你正在做的事情。

您需要像这样访问客户端ID吗?只要不在转发器或其他东西中,您就应该能够设置控件的ID,几乎没有问题。这可以简化你想要做的事情。

在示例中,他们使用getElementById来获取隐藏字段,并只传递HiddenField的ID。

答案 1 :(得分:0)

您可以在主页面上添加全局js变量,然后设置该变量而不是隐藏字段。

Page.aspx

<script>
   var id='';
</script>

Page.aspx.cs

protected void btn_Click(object sender, EventArgs e)
{
   ScriptManager.RegisterStartupScript(Page, Page.GetType(), "updateJavaScriptId", "id='5';", true);
}