我的GridView
(upnlListing)中有UpdatePanel
(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
的操作不会触发。我该如何解决这个问题?
答案 0 :(得分:6)
正如SO问题所描述的那样
What is the difference between AsyncPostBackTrigger & PostBackTrigger?
默认情况下,UpdatePanel内部的控件导致部分页面更新,外部控件导致回发,使用这些触发器可以根据需要更改此行为。
来自http://seminaarit.codezone.fi/video/devdays-2007/track1/2/2-ASP-dotNET_AJAX_Extensions.ppt
将回发转换为异步回调 通常用于在UpdatePanel回发之外的控件时触发更新 如果ChildrenAsTriggers =“false”,可用于指定UpdatePanel内的哪些控件应该回调而不是回发
让UpdatePanel内部的控件回发 通常用于允许某些控件在ChildrenAsTriggers =“true
时回发答案 1 :(得分: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>