更新面板中AsyncPostBackTrigger和PostBackTrigger的区别是什么?

5

我在我的UpdatePanel(upnlListing) 中有一个名为GridView(ucLAD)的控件。在ucLAD中,我有一个复选框和一个rowClicked的操作:

<asp:UpdatePanel ID="upnlListing" runat="server" >
     <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ucLAD"/>
        <%-- <asp:PostBackTrigger ControlID="ucLAD"/> --%>
     </Triggers>
     <ContentTemplate>
        <asp:Panel ID="pnlRequest" runat="server" style="margin-top:15px; height: auto;">
             <ucgv:BaseGrid runat="server" ID="ucLAD"/>
        </asp:Panel>

     </ContentTemplate>  
</asp:UpdatePanel>

当我使用PostBackTrigger时,所执行的动作将是rowClicked,当我勾选复选框时也是同样的情况,但是当我使用AsyncPostBackTrigger时,我可以勾选复选框,但是当我点击行时,rowClicked的动作不会触发。我该如何解决这个问题?
2个回答

5

如在SO问题中所述

AsyncPostBackTrigger和PostBackTrigger之间有什么区别?

默认情况下,UpdatePanel内的控件会引起部分页面更新,而外部的控件则会引发回发(postback)。使用这些触发器可以根据需要更改此行为。

来自http://seminaarit.codezone.fi/video/devdays-2007/track1/2/2-ASP-dotNET_AJAX_Extensions.ppt

AsyncPostBackTrigger

将回发(postback)转换为异步回调(async callbacks) 通常用于在UpdatePanel之外的控件回发时触发更新 如果ChildrenAsTriggers="false",则可用于指定UpdatePanel内的哪些控件应调用回调而不是回发(postback)

PostBackTrigger

允许UpdatePanel内的控件进行回发(postback) 通常用于当ChildrenAsTriggers="true"时允许特定控件回发(postback)


抱歉,这里的问题是针对我的问题具体而言的。这些不同的方法会产生不同的结果。请详细说明您的答案。我该怎么处理我的代码?有哪些具体的修改? - Mark
https://dev59.com/2m445IYBdhLWcg3wWI2L?lq=1 - Ed_

0

关于 AsyncPostBackTrigger 和 PostBackTrigger 的理论解释是绝对正确的。 在这里,我为这两个示例提供了一个例子:

<td style="padding-left: 8px;">
     <asp:UpdatePanel  runat="server" ChildrenAsTriggers="false" UpdateMode="conditional">
         <ContentTemplate>
         <asp:RadioButton ID="RBtn_InventoryPriceWithPurchase" Text="Inventory Price With Purchase" GroupName="ReportAnalysis" runat="server" AutoPostBack="True" OnCheckedChanged="RBtn_InventoryPriceWithPurchase_CheckedChanged"/>
         </ContentTemplate>
          <Triggers>
           <asp:AsyncPostBackTrigger ControlID="RBtn_InventoryPriceWithPurchase"EventName="CheckedChanged"/>
          </Triggers>
          </asp:UpdatePanel>
</td>

<td style="padding-left: 8px;">
    <asp:UpdatePanel runat="server" ChildrenAsTriggers="True" UpdateMode="Always">
     <ContentTemplate>
  <asp:RadioButton ID="RBtn_MerchandisingReport" Text="Merchandising Report" GroupName="ReportAnalysis" runat="server" AutoPostBack="True" OnCheckedChanged="RBtn_MerchandisingReport_CheckedChanged" />
  </ContentTemplate>
  <Triggers>
 <asp:PostBackTrigger ControlID="RBtn_MerchandisingReport"/>
 /Triggers>
 </asp:UpdatePanel>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接