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

我有一个隐藏的领域:

   

和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(""); $('#').val(emptyVal); alert($('#').val()); } 

背后的代码:

 var value = hiddenId.Value; 

我在rowdatabound上的gridview的行上添加了一个onclick事件:

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

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

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

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

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

我能做什么才能从隐藏字段中获取新值? 谢谢!

编辑:

jQuery的目的是突出显示所选gridview的行。 再次单击同一行时,它将删除该行的突出显示。 同时,它应该从隐藏字段中删除值。

示例场景:

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

你的jquery选择器看起来很奇怪,但我可能不理解你正在做的事情。 你不能用:

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

此外,它看起来像你的Jquery选择器使用一个值:

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

但是你的Request.Form引用了不同的东西:

 hiddenId.UniqueID 

尝试使用像这样的标准html输入标签(没有runat = server):

  

然后在您的代码后面引用它像这样:

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

当然,您需要修改您的jQuery和代码背后的其他代码才能使用正确的id。

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

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