Скрытое поле Asp не обновляет значение на стороне сервера с помощью jQuery

0

У меня есть скрытое поле:

<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 + "';");

Таким образом, каждый щелчок строки индекс строки хранится в скрытом поле.

Моя проблема здесь в том, что я не могу получить новое значение на стороне сервера. Я использовал alert в jquery, чтобы проверить, обновляется ли значение. Он обновляется, но когда он попадает в точку останова на стороне сервера, я все равно получаю старое значение.

Я даже пытался использовать это, но все равно не повезло:

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

Что я могу сделать, чтобы получить новое значение из скрытого поля? Благодарю!

РЕДАКТИРОВАТЬ:

Цель jQuery - выделить строку выбранного gridview. При повторном нажатии той же строки он удалит выделение строки. И в то же время он должен удалить значение из скрытого поля.

Пример сценария:

1) Пользователь щелкнет строку
2) Скрытое поле будет заполнено, например, int 0.
3) Когда пользователь снова нажмет одну и ту же строку, он удалит значение скрытого поля.

  • 0
    Вы можете показать реальный код JQuery?
  • 0
    $(this).addClass(""); :) что это за точно?
Показать ещё 3 комментария

3 ответа

0
Лучший ответ

Я решил свою проблему, используя следующий код:

var hiddenValue = Request.Form[hiddenId.Value];
  • 0
    на ваш предыдущий вопрос привязать ваш ddl после ввода значения
0

Попробуйте использовать стандартный тег ввода html, как это (без runat = server):

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

Затем в вашем коде за ссылкой сделайте следующее:

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

Конечно, вам нужно будет изменить код jQuery и другого кода за кодом, чтобы использовать правильный идентификатор.

  • 0
    Это не сработало. Все еще давая мне старое значение, но в alert , новое значение отображается ..
  • 0
    Когда вы отправляете обратно на сервер? На нажатие кнопки? Кроме того, что происходит в вашей Page_Load?
Показать ещё 2 комментария
0

Ваши селекторы jQuery выглядят странно, но я, возможно, не понимаю все, что вы делаете. Не могли бы вы использовать:

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

Кроме того, похоже, что ваш селектор JQuery использует одно значение:

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

Но ваш Request.Form ссылается на что-то другое:

hiddenId.UniqueID
  • 0
    Все еще не работает. Старое значение извлекается с сервера.
  • 0
    Не могли бы вы добавить, как выглядит рендеринг html (скрытого поля) к вашему вопросу?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню