我在SO中找不到类似的东西。
在ASP.NET中,有什么提示可以导致我在UpdatePanel中使用Javascript进行部分回发吗? 我试过了,__doPostBack()但它做了完整的回发。 我可以用一个虚拟按钮欺骗它,click()然后开火然后以这种方式处理部分回发,但是我想要一种比欺骗更优雅的方法。
__doPostBack()
click()
谢谢。
编辑:我发现此不为所动buddha.wordpress.com/2007/11/26/…但是我无法使它工作=( 我希望这种方法可以工作;对我来说是完美的!到目前为止,我可以使用最后一种方法是获取对计时器的引用。在最初禁用计时器的情况下,启动计时器似乎不会引起回发;但是,如果没有Ajax,如果我只是在最初启用了计时器,它就会以适当的间隔发回;为什么Ajax调用不能引起它?
您可以将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
__doPostBack('<%=UpdatePanel1.ClientID %>', null);