2016-03-03 49 views
0

动态生成的属性值我有一个表格,我在标记中设置默认值的隐藏字段:获取有关点击

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

我动态设置通过客户端JS功能的字段的值。 ..that工作和我场结束了看起来像:

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

...所以我不是绑在隐藏字段,或者该值属性重要的......只是用它作为一种方法来将值从一个点传递到另一个点。

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

+0

如何的'默认值0'被设置?只是在标记或“Page_Load”中?如果它被设置为'Page_Load'而不被'!IsPostBack'保护,那么页面加载将覆盖后发回的默认值。 – vcsjones

+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; 
    } 
+0

是......这工作。谢谢! –