我有一个指定了ContentTemplate的UpdatePanel。页面加载时,用户可以在页面的其他部分进行一些AJAX工作。然后,在完成该工作之后,我想仅更新UpdatePanel内的内容,但不按任何按钮等。我应该在以前启动AJAX工作完成时使用JavaScript自动完成。如何在不手动点击触发按钮的情况下进行操作?
编辑:
好的,我已经遵循了_doPostBack规则,并且发布了整个页面。
<asp:UpdatePanel ID="panelAttachments" runat="server">
<ContentTemplate>
........
</ContentTemplate>
</asp:UpdatePanel>
<input type="text" name="test" onchange="__doPostBack('<%=panelAttachments.UniqueID %>',''); return false;" />
</td>
谢谢,Pawel
答案 0 :(得分:7)
从javascript刷新更新面板:
__doPostBack(updatePanelUniqueID,'');
第一个参数是UpdatePanel的UniqueID(不是CientID)。第二个参数是您可以传递的可选参数,可供您的服务器代码使用。它们都存储在ASP.NET的隐藏表单字段中,您可以在代码隐藏中访问它们:
Request.Form["__EVENTTARGET"];
Request.Form["__EVENTARGUMENT"];
但是如果你只想刷新面板而不需要从客户端传递任何其他信息,那么你可以忽略第二个参数。
如果你查看ASP.NET为异步回发控件生成的HTML,你会看到它就是这样。