How to get HiddenField value in asp.net code-behind

蓝咒 提交于 2019-11-28 09:01:26

问题


How to get HiddenField value in asp.net code-behind? Thanks in advance!

  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>

回答1:


The client ID isn't necessarily the same as the server ID (unless you're using CliendIDMode=Static. You can insert a server tag to get the client ID.

Note also that you have to put the script inside a document.ready tag, or put the script at the bottom of the page -- otherwise the script won't find HiddenField1, as it will not have been loaded into the DOM yet.

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



回答2:


Try :

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

And in .cs file:

string b= HiddenField1.Value;



回答3:


Your issue is on how you set it.

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

You need to use the rendered control id.

Follow up. This code

  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"??
        }

is actually the same as :

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

Because you actually you try to set the value with registering a javascript code, but why ? you can direct set that value from code behind.

Where do you really wont to get that value ?



来源:https://stackoverflow.com/questions/13600109/how-to-get-hiddenfield-value-in-asp-net-code-behind

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!