UpdatePanel не выполняет частичное обновление страницы, а IsInAsyncPostBack всегда ложно - PullRequest
2 голосов
/ 09 февраля 2010

Я пытаюсь использовать UpdatePanel, но не могу заставить работать частичные обновления страницы.

Когда я смотрю на свойство IsInAsyncPostBack ScriptManager, оно всегда ложно.

Вот страница, которая воспроизводит проблему. Он имеет ScriptManager, UpdatePanel, LinkButton на панели обновлений и кнопку, подключенную к UpdatePanel через коллекцию Triggers.

<%@ Page Language="C#" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {

        Label1.Text = DateTime.Now.ToString();

        if (IsPostBack)
            Label1.Text += " - Postback!";
        if (ScriptManager1.IsInAsyncPostBack)
            Label1.Text += " - Async!";
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server"  />

            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
                <ContentTemplate>Panel 1:<asp:Label runat=server ID=Label1 /><br />
                <asp:LinkButton runat=server ID="LinkButton1" Text="Update!"></asp:LinkButton></ContentTemplate>
                <Triggers><asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /></Triggers>
            </asp:UpdatePanel>
            <asp:Button ID="Button1" Text="Refresh Panel 1" runat="server" UseSubmitBehavior=false />

    </form>
</body>
</html>

Если я запускаю этот код и нажимаю на любую из кнопок, я вижу «Панель 1: 8/8/2010 15:38:41 PM - Postback!»

Я ожидал, что нажатие любой кнопки приведет к частичному обновлению страницы для UpdatePanel1, что IsInAsyncPostBack будет истинным, и что "- Async!" будет добавлен в Label1.

Есть идеи, почему IsInAsyncPostBack всегда ложен?

1 Ответ

9 голосов
/ 09 февраля 2010

Файл web.config имел . Когда установлен устаревший режим, частичные обновления страницы не работают. (На самом деле они молча терпят неудачу - БУ! ШИП!)

Изменение режима на Переходный решило эту проблему.

http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx

...