2个更新面板总是回发

时间:2010-11-16 19:59:57

标签: asp.net updatepanel asp.net-4.0

我有以下页面,我正在绞尽脑汁为什么当我有两个更新面板时,他们都得到回复。我可以告诉因为我有两个用户控件 - 每个面板中有一个它们都会触发页面加载事件,只有左侧面板应该回头并更新自己...或者如果实际上是整个页面,那么更新面板是什么回帖!!!

我在这里缺少什么?

<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 个答案:

答案 0 :(得分:1)

您在更新面板中缺少某个属性:

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

这将使更新面板仅在其某个子控件或其中一个<Triggers>导致回发时更新。

答案 1 :(得分:1)

首先,您没有指定UpdateModeUpdatePanels属性,因此默认为Always。这意味着当其中一个面板执行部分回发时,两个面板都将刷新。您需要指定这些属性并将其设置为Conditional

也就是说,用户控件在每次回发时都会经历Load阶段,甚至是部分回复,这是完全正常的。整个页面生命周期实际上发生在部分回发期间,就像在完整回发期间一样,但在部分回发期间,只有部分结果页面标记被发送到浏览器。