使用Javascript进行部分回发

Bee*_*Guy 16 javascript asp.net ajax postback

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

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

谢谢.

编辑:我发现这个扰乱了buddha.wordpress.com/2007/11/26/ ...但是我无法让它工作=(
我希望这种方法能够起作用;它对我来说很完美!到目前为止我能做什么呢?最后一种方法是对定时器的增益引用.在最初禁用定时器的情况下,启动定时器似乎不会导致回发.但是,如果没有Ajax,如果我只是初始启用了定时器,那么它会以一定的间隔回复就好了;为什么Ajax调用不能导致它呢?

Mat*_*obs 33

您可以将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;" />
Run Code Online (Sandbox Code Playgroud)

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

__doPostBack('<%=ReloadThePanel.ClientID %>', null);
Run Code Online (Sandbox Code Playgroud)

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

编辑

您可以在没有任何触发器或隐藏按钮的情况下对UpdatePanel执行纯JavaScript更新.您只需要__doPostBack使用客户端ID作为第一个参数进行调用.

__doPostBack('<%=UpdatePanel1.ClientID %>', null);
Run Code Online (Sandbox Code Playgroud)