小编典典

Java部分回发

ajax

我在SO中找不到类似的东西。

在ASP.NET中,有什么提示可以导致我在UpdatePanel中使用Javascript进行部分回发吗?
我试过了,__doPostBack()但它做了完整的回发。
我可以用一个虚拟按钮欺骗它,click()然后开火然后以这种方式处理部分回发,但是我想要一种比欺骗更优雅的方法。

谢谢。

编辑:我发现此不为所动buddha.wordpress.com/2007/11/26/…但是我无法使它工作=(
我希望这种方法可以工作;对我来说是完美的!到目前为止,我可以使用最后一种方法是获取对计时器的引用。在最初禁用计时器的情况下,启动计时器似乎不会引起回发;但是,如果没有Ajax,如果我只是在最初启用了计时器,它就会以适当的间隔发回;为什么Ajax调用不能引起它?


阅读 262

收藏
2020-07-26

共1个答案

小编典典

您可以将AsyncPostBackTrigger与UpdatePanel一起使用来执行此操作。因为您需要可以触发事件的内容,所以使用按钮非常简单,并且隐藏起来很好。

如果这是您的标记:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
    <ContentTemplate>
        <!-- Contents... -->
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ReloadThePanel" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>
<asp:Button ID="ReloadThePanel" runat="server" style="display:none;" />

当您想要更新面板时,只需要调用:

__doPostBack('<%=ReloadThePanel.ClientID %>', null);

这将使ASP.NET认为已单击ReloadThePanel,并且由于触发器而自动生成的JavaScript将处理其余部分。

编辑

您可以对UpdatePanel进行纯JavaScript更新,而无需任何触发器或隐藏按钮。您只需要__doPostBack使用客户端ID作为第一个参数进行调用。

__doPostBack('<%=UpdatePanel1.ClientID %>', null);
2020-07-26