2 панели обновлений всегда публикуются - PullRequest
1 голос
/ 16 ноября 2010

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

что мне здесь не хватает?

<asp:Content ID="StyleContent" ContentPlaceHolderID="Style" runat="server">
<link href="../Styles/ReportWizard.css" rel="stylesheet" type="text/css" />

<div class="clearFix"></div>

<div class="wizardContainer">
<asp:UpdatePanel runat="server" ID="pnlWizard">
    <ContentTemplate>
        <table>
            <tr>
                <td>
                    <asp:Panel runat="server" ID="pnlContainer"  CssClass="leftWindow" />
                </td>
            </tr>
            <tr><td>
                <input type="hidden" name="rwReport" id="rwReport" />
                <input type="hidden" name="rwProject" id="rwProject" />
                <input type="hidden" name="rwStakeholder" id="rwStakeholder" />
                <input type="hidden" name="rwStakeholderNames" id="rwStakeholderNames" />
                <input type="hidden" name="rwMilestone" id="rwMilestone"/></td>
            </tr>
            <tr>
                <td align="right">
                    <asp:Button runat="server" ID="cbPrev" Text="Previous" CssClass="rwButton" OnClick="cbPrev_Click" OnClientClick="return updateBC('bwd');" />
                    <asp:Button runat="server" ID="cbNext" Text="Next" cssClass="rwButton" OnClick="cbNext_Click" />
                </td>
            </tr>
        </table>
    </ContentTemplate>
</asp:UpdatePanel>

Ответы [ 2 ]

1 голос
/ 16 ноября 2010

Во-первых, вы не указываете UpdateMode свойства ваших UpdatePanels , поэтому по умолчанию они Всегда .Это означает, что обе панели будут обновлены, когда одна из них выполнит частичную обратную передачу.Вам нужно указать эти свойства и установить для них Условный .

При этом совершенно нормально, что оба ваших пользовательских элемента управления проходят свою фазу Load на каждой обратной передаче, даже частичной.Весь жизненный цикл страницы фактически происходит во время частичной обратной передачи, так же, как и во время полной обратной передачи, но при частичной обратной передаче в браузер отправляется только часть полученной разметки страницы.

1 голос
/ 16 ноября 2010

Вам не хватает атрибута на панели обновлений:

<asp:UpdatePanel runat="server" ID="pnlWizard" UpdateMode="Conditional">

Это сделает обновление панели только в том случае, если один из ее дочерних элементов управления ИЛИ один из ее <Triggers> вызывает обратную передачу.

...