如何在asp.net代码隐藏中获取HiddenField值

时间:2012-11-28 07:39:05

标签: jquery asp.net jquery-1.5

如何在asp.net代码隐藏中获取HiddenField值?提前感谢!

  public partial class ReadCard : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "MyClick ", "<script>ReadCard();</script> ");
            string b= HiddenField1.Value; //How to get the value "123"??
        }
    }

ASPX:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <meta http-equiv="expires" content="0"/>
    <meta http-equiv="cache-control" content="no-cache"/>
    <meta http-equiv="pragma" content="no-cache"/>
    <script src="jquery-1.5.2.min.js" type="text/javascript"></script>
         <script type="text/javascript">
             function ReadCard() {
                 $("#HiddenField1").val("123");
             }
        </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:HiddenField ID="HiddenField1" runat="server" />
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    </form>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

客户端ID不一定与服务器ID相同(除非您使用CliendIDMode=Static。您可以插入服务器标签以获取客户端ID。

另请注意,您必须将脚本放在document.ready标记内,或将脚本放在页面底部 - 否则脚本将找不到HiddenField1,因为它不会被加载到DOM还没有。

$(document).ready(function() {
    $("<%= HiddenField1.ClientID %>").val("123");
});

答案 1 :(得分:2)

您的问题在于如何设置。

$("#<%=HiddenField1.ClientID%>").val("123");

您需要使用呈现的控件ID。

跟进。 这段代码

  protected void Button1_Click(object sender, EventArgs e)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "MyClick ", "<script>ReadCard();</script> ");
            string b= HiddenField1.Value; //How to get the value "123"??
        }

实际上与:

相同
  protected void Button1_Click(object sender, EventArgs e)
        {
            HiddenField1.Value = "123";
        }

因为实际上你试图通过注册javascript代码来设置值,但为什么呢?您可以直接从代码后面设置该值。

你真的不知道这个价值在哪里?

答案 2 :(得分:2)

尝试:

$("#<%= HiddenField1.ClientID %>").val("123");

在.cs文件中:

string b= HiddenField1.Value;