Скрытое поле ASP.NET не обновляется после обратной передачи - PullRequest
4 голосов
/ 17 июня 2011

На моей странице ASP есть код, который выглядит следующим образом:

<asp:UpdatePanel runat="server" id="updatepanel1" UpdateMode="Conditional" onload="updatepanel1_Load" ChildrenAsTriggers="false">
<ContentTemplate>
<asp:HiddenField id="sendingRequest" runat="server" Value="0" />
....
</ContentTemplate>
</asp:UpdatePanel>

У меня также есть некоторый javascript на моей странице, который делает это, чтобы вызвать обновление панели обновления:

var sendingRequest = document.getElementById("<%=sendingRequest.ClientID%>");
sendingRequest.value = "1";
__doPostBack('<%= updatepanel1.ClientID %>', '');

До сих пор все работало нормально, но в моем событии updatepanel1_Load я пытаюсь установить значение обратно в "0":

sendingRequest.Value = "0";

Это значение никогда не обновляется и не устанавливается на 0 на клиенте после обратной передачи, и я не могу понять, почему!

Кто-нибудь может помочь? Спасибо

Ответы [ 3 ]

5 голосов
/ 17 июня 2011

Если у вас есть проблемы со скрытым полем, вы можете вместо этого использовать TextBox. Скройте текстовое поле с помощью css (display: none;), чтобы получить аналогичные результаты для скрытого поля. Это не совсем красиво, но это обходной путь.

0 голосов
/ 17 июня 2011

Этот похожий сценарий успешно выполнен:

http://encosia.com/easily-refresh-an-updatepanel-using-javascript/

Убедитесь, что вы выполняете те же действия - я не вижу весь ваш код.Сначала попробуйте использовать метку, чтобы убедиться, что она обновляется как видимый элемент управления.Если это работает, то сузьте его до скрытого значения, чтобы убедиться, что поведение скрытого элемента управления не отличается.

0 голосов
/ 17 июня 2011

Попробуйте вызвать registerstartupscript или что-то подобное со стороны сервера. Я не могу вспомнить точно имя метода, но его часть объекта страницы. Это зарегистрирует любой javascript, который вы хотели бы выполнить после обратной передачи на стороне клиента.

...