Asp隐藏字段未使用jQuery更新服务器端的值



我有一个隐藏字段:

<ContentTemplate>
<asp:HiddenField ID="hiddenId" runat="server"/>
</ContentTemplate>

以及jQuery:

var emptyVal = "123";
$("[id*=gridview] td").bind("click", function () {
var row = $(this).parent();
$("[id*=gridview] tr").each(function () {
if ($(this)[0] != row[0]) {
$("td", this).removeClass("");
}
});
if (!$(this).hasClass("")) {
$(this).addClass("");
}
else 
{
$(this).removeClass("");
$('#<%= hiddenId.ClientID %>').val(emptyVal);
alert($('#<%= hiddenId.ClientID %>').val());
}

背后的代码:

var value = hiddenId.Value;

我在rowdatabound:上的网格视图的行上添加了一个onclick事件

e.Row.Attributes.Add("onclick","javascript: getElementById('" + hiddenId.ClientID + "').value='" + e.Row.RowIndex + "';");

因此,每次单击行时,行索引都存储在隐藏字段中。

我的问题是无法在服务器端获取新值。我在jquery上使用了alert来测试该值是否正在更新。它正在更新,但当它到达服务器端的断点时,我仍然得到旧值。

我甚至尝试过使用这个,但仍然没有运气:

var hiddenValue = Request.Form[hiddenId.UniqueID];

我该怎么做才能从隐藏字段中获得新值?谢谢

编辑:

jQuery的作用是突出显示所选栅格视图的行。再次单击同一行时,将删除该行的高亮显示。同时,它应该删除隐藏字段中的值。

示例场景:

1) 用户将单击一行
2)例如,隐藏字段将由int0填充
3)当用户再次单击同一行时,将删除隐藏字段的值。

您的jquery选择器看起来很奇怪,但我可能不理解您所做的一切。你能不能不用:

$('#hiddenId').val(emptyVal);

此外,看起来Jquery选择器使用了一个值:

$('#<%= hiddenId.ClientID %>')

但是你的请求。表单引用了一些不同的东西:

hiddenId.UniqueID

尝试使用这样的标准html输入标记(无runat=server):

<input type="hidden" id="hiddenId" name="hiddenId" value="" />

然后在你的代码背后引用它像这样:

var value = Request.Form["hiddenId"];

当然,您需要修改您的jQuery和其他代码隐藏代码,以使用正确的id。

我使用以下代码解决了问题:

var hiddenValue = Request.Form[hiddenId.Value];

最新更新