【问题标题】:How to get HiddenField value in asp.net code-behind如何在 asp.net 代码隐藏中获取 HiddenField 值
【发布时间】:2012-11-16 00:16:04
【问题描述】:

如何在 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>

【问题讨论】:

  • 你做的有点无意义/Bug。您在回发后使用 javascript 设置按钮单击的值,但您尝试在回发之前获取它。

标签: jquery asp.net jquery-1.5


【解决方案1】:

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

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

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

【讨论】:

  • 由于某些原因我必须执行以下操作: this.ClientScript.RegisterStartupScript(this.GetType(), "MyClick ", " ");
【解决方案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 代码来设置值,但为什么呢?您可以直接从后面的代码中设置该值。

你真的不想从哪里获得这个价值?

【讨论】:

    【解决方案3】:

    试试:

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

    在 .cs 文件中:

    string b= HiddenField1.Value;
    

    【讨论】:

    • 这都已经回答完毕了,为什么还要添加一个相同的答案?
    • 由于某些原因我必须执行以下操作: this.ClientScript.RegisterStartupScript(this.GetType(), "MyClick ", " ");
    • 抱歉网速太慢了,我可以删除这个吗?
    • 好的,接受这是尼泊尔的延迟网 :) - 保留它,另外,如果您注意到问题,是一个错误的问题,请在回帖后设置此值。
    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多