#c# #.net #asp.net #callback #hidden-field
#c# #.net #asp.net #обратный вызов #скрытое поле
Вопрос:
Я изменяю значение asp: HiddenField во время обратного вызова.
<asp:HiddenField runat="server" ID="hiddenField" Value="old value" />
private void Page_Load(object sender, EventArgs e)
{
if (IsCallBack)
{
hiddenField.Value = "new value";
}
}
но после обратного вызова значение скрытого поля равно «старому значению». При отладке я вижу, что значение скрытого поля равно «новому значению». Я хотел бы знать, почему оно сохраняет исходное значение. Спасибо.
Комментарии:
1. Вы имеете в виду
IsPostBack
?UpdatePanels
Задействованы?2. Это так,
IsCallBack
я ни в чемUpdatePanels
не замешан.
Ответ №1:
Я думаю, вы пытаетесь изменить значение скрытого поля при асинхронной / частичной обратной публикации, но вашего скрытого поля нет на панели обновления.
Редактировать: Вам нужно поместить ваше скрытое поле на панель обновления.
Комментарии:
1. Да, моего скрытого поля нет внутри панели обновления. Должен ли я поместить его в панель обновления?
2. Спасибо, есть ли какой-либо другой способ вместо использования UpdatePanel?
3. Вам нужно понимать теорию частичной обратной передачи. Значения будут обновлены при асинхронной обратной передаче только тогда, когда они находятся в updatepanel. Если вы действительно хотите обновить значение на стороне сервера, то другого способа нет. Другой способ, если вы не хотите добавлять панель обновления, вы можете сделать это в javascript.
4. Да, я уже думал обновить его с помощью javascript… Я также ищу, как вызывать функции javascript из исходного кода без использования
RegisterClientScriptBlock
метода и веб-браузера.. (это повлияет на уровень доверия моего проекта). В любом случае, большое вам спасибо! Это полезно 🙂