单击时获取动态生成的属性值
本文关键字:属性 获取 动态 单击 | 更新日期: 2023-09-27 18:37:19
我在表单中有一个隐藏字段,我在标记中设置了默认值:
<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
}
。所以我没有绑定到隐藏字段或与此相关的值属性......只是将其用作将值从一个点传递到另一个点的黑客方式。
此外,即使我能够使用 JS 来设置属性,解决方案也需要在 C# 中才能根据需要使用结果......除非有办法在 JS 中执行此操作并将结果传递给 C#。
您可以向页面添加普通 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;
}