有没有办法在没有点击事件的情况下触发更新面板?

时间:2011-06-15 20:37:58

标签: asp.net ajax updatepanel

我正在尝试一次加载页面的一部分而不是在onLoad页面事件中进行所有计算,然后一次显示所有计算。

我认为模仿更快加载页面的方法之一是将页面的各个部分分成更新面板(如果我在这种方法中出错,请纠正我)。因此,我想知道是否有办法在onLoad事件中执行某些代码,在页面上显示该代码,然后在updatepanels中继续执行其他工作并在完成后加载这些代码。

2 个答案:

答案 0 :(得分:2)

您可以在UpdatePanel上调用.Update方法。将UpdateMode设置为Conditional并在代码中手动处理所有Update面板更新。

答案 1 :(得分:2)

UpdatePanels是一个糟糕的ajax实现。由于只更新页面的一部分,因此很容易(太容易)认为您缩短了页面的执行时间。 UpdatePanel执行回发,因此执行页面的整个生命周期(蹩脚的是,它将为您的页面执行PageLoad,并且页面上的每个用户控件不仅仅是UpdatePanel中的用户控件)。除非你在代码中放了很多if !Page.IsPostBack,否则你最终可能会减慢你的应用程序速度。此外,由于它是一个回发,它将提交页面上的runat ='server'表单,并将每个输入(不仅仅是更新面板中的内容)提交给服务器,这意味着你没有保存任何内容有效载荷和带宽使用更新面板。

回答你的问题,你只需要调用__doPostBack('updatepanel1','')。参考http://encosia.com/easily-refresh-an-updatepanel-using-javascript/