3

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>
4

3 に答える 3

4

クライアントIDは、必ずしもサーバーIDと同じである必要はありません(使用している場合を除くCliendIDMode=Static。サーバータグを挿入してクライアントIDを取得できます。

また、スクリプトをタグ内に配置するか、ページの下部に配置する必要があることにも注意してdocument.readyください。そうしないと、まだDOMにロードされていないため、スクリプトはHiddenField1を検出できません。

$(document).ready(function() {
    $("<%= HiddenField1.ClientID %>").val("123");
});
于 2012-11-28T07:41:08.830 に答える
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コードを登録して値を設定しようとしているのですが、なぜですか?コードビハインドからその値を直接設定できます。

どこでその価値を手に入れたいと思いますか?

于 2012-11-28T07:41:17.287 に答える
2

試す :

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

そして.csファイル:

string b= HiddenField1.Value;
于 2012-11-28T07:44:15.880 に答える