C# 防止UpdatePanel部分回发

C# 防止UpdatePanel部分回发,c#,asp.net,.net,updatepanel,postback,C#,Asp.net,.net,Updatepanel,Postback,我在一个非常慢的页面上有一个UpdatePanel。其UpdatePanel设置为有条件更新。我面临的问题是UpdatePanel在呈现客户端时会立即执行部分回发。我的问题是: 有可能阻止第一次部分回发吗 这是一种好的做法吗?为什么 谢谢你的帮助 标记: <asp:UpdatePanel UpdateMode="Conditional" ChildrenAsTriggers="false" runat="server" ID="updatePnlValidationErr

我在一个非常慢的页面上有一个UpdatePanel。其UpdatePanel设置为有条件更新。我面临的问题是UpdatePanel在呈现客户端时会立即执行部分回发。我的问题是:

  • 有可能阻止第一次部分回发吗
  • 这是一种好的做法吗?为什么
  • 谢谢你的帮助

    标记:

            <asp:UpdatePanel UpdateMode="Conditional"  ChildrenAsTriggers="false" runat="server" ID="updatePnlValidationErrors">
                <ContentTemplate>
                    <span runat="server" id="validationErrors" class="error"></span>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger EventName="Click" ControlID="btnCompletePurchase" />
                    <asp:AsyncPostBackTrigger EventName="Checkout_Click" ControlID="checkoutBox" />
                </Triggers>
            </asp:UpdatePanel>
    
    
    

    没有直接接触UpdatePanel的代码。

    好的,代码中的asyncpostbacktrigger没有指向正确的控件。我想,您可能只是出于演示目的才删除了这些控件,但它们对我们的测试至关重要。下面是我对您的代码的完整模拟及其最后的结果

    我在更新面板外为AsyncPostBackTriggers添加了两个缺少的相关控件

    
    
    您的代码如下所示:

    
    
    这是第一次页面加载事件的断点结果:


    因此,您可以复制并粘贴此代码,以检查最后的结果。

    是否在页面加载事件中更新更新面板?@DTs否,不在服务器端。我只有两个触发器绑定到它,它们都在按钮上的单击事件上。如何检查更新面板以查看它是否在页面加载时回发?“我面临的问题是,UpdatePanel在呈现客户端时会立即进行部分回发”-您可以发布标记和代码,以便我们验证这一点吗。听起来不对,UpdatePanels不应该这样做,除非你让它更新。@sh1rts我把它编辑到了问题中。你的意思是,在他的aspx中,他忘了包括触发更新的控件?这是不可能的,因为当他试图打开页面时会出现异常。
     <asp:Button ID="btnCompletePurchase" runat="server" Text="Button"
                 OnClick="btnCompletePurchase_Click" />
     <asp:CheckBox ID="checkoutBox" runat="server" 
                   OnCheckedChanged="checkoutBox_CheckedChanged" />
    
     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    
     <asp:Button ID="btnCompletePurchase" runat="server" Text="Button"
                 OnClick="btnCompletePurchase_Click" />
     <asp:CheckBox ID="checkoutBox" runat="server" 
                   OnCheckedChanged="checkoutBox_CheckedChanged" />
     <asp:UpdatePanel UpdateMode="Conditional"  ChildrenAsTriggers="false" 
                      runat="server" ID="updatePnlValidationErrors">
         <ContentTemplate>
            <span runat="server" id="validationErrors" class="error"></span>
         </ContentTemplate>
         <Triggers>
            <asp:AsyncPostBackTrigger EventName="Click" 
                                          ControlID="btnCompletePurchase" />
            <asp:AsyncPostBackTrigger EventName="CheckedChanged" 
                                          ControlID="checkoutBox" />
         </Triggers>
     </asp:UpdatePanel>