Установить скрытое значение поля после обратной передачи - PullRequest
0 голосов
/ 30 июля 2010

У меня есть компонент, который определяет значение события обратной передачи.

protected void Button_Click(object s, EventArgs e)
{
   HiddenField.Value = 5;
}

Конечно, значение имеет большее значение, но HiddenField - это элемент управления asp: HiddenField с runat = server set. У меня есть в моем JavaScript:

var id = $("#<%= HiddenField.ClientID %>").val();

Код в javascript настроен для запуска только после того, как произошла обратная передача (другое событие клика клиента) с целью передачи значения скрытого поля через QueryString на другой URL-адрес (поскольку я не могу выполнить перенаправление ответа) на обратных передачах, и клиент все равно хочет, чтобы это было на другой странице).

Я попытался добавить:

ScriptManager.RegisterHiddenField(HiddenField, "Value", string.Empty);

Для раздела кода! Page.IsPostback, но идентификатор все еще не установлен при запуске JavaScript.

Ответы [ 2 ]

0 голосов
/ 18 августа 2010

Вы можете добавить глобальную переменную js на своей главной странице, а затем установить эту переменную вместо скрытого поля.

Page.aspx

<script>
   var id='';
</script>

Page.aspx.cs

protected void btn_Click(object sender, EventArgs e)
{
   ScriptManager.RegisterStartupScript(Page, Page.GetType(), "updateJavaScriptId", "id='5';", true);
}
0 голосов
/ 30 июля 2010

Здесь - похожая проблема.Может быть, вы можете использовать его, чтобы изменить то, что вы делаете.

Вам нужен такой идентификатор клиента?Вы должны иметь возможность установить идентификатор для элемента управления с небольшими проблемами, если он не находится в повторителе или что-то еще.Это может упростить то, что вы пытаетесь сделать.

В примере они используют getElementById, чтобы получить скрытое поле и просто передать идентификатор HiddenField.

...