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

时间:2014-02-24 02:57:42

标签: c# javascript jquery asp.net

我有一个隐藏的领域:

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

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

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

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

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

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

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

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

修改

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

示例场景:

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

3 个答案:

答案 0 :(得分:0)

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

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

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

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

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

hiddenId.UniqueID

答案 1 :(得分:0)

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

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

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

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

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

答案 2 :(得分:0)

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

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