Я следую простому примеру использования панели обновления здесь (http://www.asp.net/Ajax/Documentation/Live/tutorials/IntroductionUpdatePanel.aspx). За пределами панели обновления у меня есть другой элемент управления вводом html, который вызывает функцию javascript, которая отображает счетчик для пользователя в окно предупреждения. Простые вещи. Моя проблема заключается в том, что страница работает по-разному при запуске на IIS и на встроенном веб-сервере asp.net (cassini). При нажатии IIS кнопка на панели обновления вызывает полную обратную передачу, поэтому отображается счетчик. пользователю в функции js каждый раз сбрасывается после этого. под встроенным веб-сервером нажатие кнопки на панели обновлений ведет себя так, как я ожидал, и как я хочу, чтобы обновлялась только метка, чтобы счетчик клиентская сторона не сбрасывается.
.net 3.5 является целевой платформой, и я использую IIS 5.1.
Я видел сообщения в других местах, описывающие ту же проблему (http://forums.asp.net/t/1169282.aspx)
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
var count=0;
function incrementCounter()
{
count ++;
alert(count);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Panel Created"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<input type="button" id="Button2" value="JS Clicker" onclick="incrementCounter();" />
</form>
</body>
</html>
Обновление:
Спасибо Crossbrowser за ваш ответ. Мой ответ займет много места в окне Добавить комментарий. Итак, следуя этому простому примеру здесь (http://www.asp.net/Ajax/Documentation/Live/tutorials/IntroductionUpdatePanel.aspx), вы можете видеть, что режим обновления не установлен на условный, поэтому я отразил эти изменения. Однако моя проблема все еще сохраняется. То есть, страница при работе на IIS вызывает полную обратную передачу. То есть индикатор загрузки в вашем браузере загружается, экран мерцает, счетчик на стороне клиента, который я обслуживал, теряется. Запуск кода на встроенном веб-сервере asp.net - нет. В этом суть моей проблемы. сталкивался с этой проблемой другими (http://forums.asp.net/t/1169282.aspx).
Итак, мой вопрос: что отличается при работе на IIS от встроенного asp.net?
Обновленный код:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
var count=0;
function incrementCounter()
{
count ++;
alert(count);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Panel Created"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<input type="button" id="Button2" value="JS Clicker" onclick="incrementCounter();" />
</form>
</body>
</html>