点击

时间:2016-03-03 19:58:21

标签: c#

我在表单中有一个隐藏字段,我在标记中设置了默认值:

<input id="hiddenField" type="hidden" runat="server" value="0" />

我通过客户端JS函数动态设置字段的值...这样可行,我的字段最终看起来像:

<input id="hiddenField" type="hidden" runat="server" value="7" />

我想要做的是在点击此按钮时获取该值:

<asp:Button ID="Button" runat="server" OnClick="Button_Click" Text="Submit" CssClass="btn" />

然后从我的代码中使用它来执行某些操作。

protected void Button_Click(object sender, EventArgs e)
    {
        string itemToCheck = hiddenField.Value;
        //do something with itemToCheck
    }

问题是返回的值是0,这是默认值。正如我所提到的,价值是通过客户端JS改变的,我确认该部分有效。这样做的目的是创建一个可以在提交时用于检查值的变量,即使是简单的事情:

if (itemToCheck >= 2){
    //do something
}

...所以我没有绑定隐藏字段,或者那个问题的值属性......只是将它作为一种将一个值从一个点传递到另一个点的hacky方式。

此外,即使我能够使用JS来设置属性,解决方案需要在C#中根据需要使用结果....除非有一种方法在JS中执行它并将结果传递给C#。

1 个答案:

答案 0 :(得分:1)

您可以将常规ASP.Net文本框添加到页面,然后在客户端加载页面时将其隐藏。然后,您可以使用JavaScript和jQuery操作该值。

<script>
    $(document).ready(function () {
        $('input#<% =txtTest.ClientID %>').val(9);
        $('input#<% =txtTest.ClientID %>').hide();
    }) 
</script>

然后,您可以阅读服务器端的文本框值:

    protected void Button1_Click(object sender, EventArgs e)
    {
        var x = txtTest.Text;
    }