c#Ajax Lazy Loading

时间:2009-04-16 11:51:04

标签: c# ajax lazy-loading

我需要在aspx页面上填充4个GridViews,但我只在页面加载时将数据表绑定到其中一个。我需要在页面加载后瞳孔化其他3个。

有没有人知道使用ajax执行此操作的最佳方法?

目前我在一个按钮上使用javascript来__doPostBack,该按钮可以化合3个GridView,但不幸的是,即使使用更新面板,也会强制整页加载。我需要加载页面,然后在返回数据表时填充GridView。

任何建议都会被贬低。

2 个答案:

答案 0 :(得分:2)

你正在做的方式应该可以正常工作,尽管使用jquery通过$(“#targetDiv”)填充div.load(“contentUrl”);功能可能是一种更清洁的方式。无论如何,为了使你当前的实现工作,你可能想要看一些事情:

  1. 我假设您的ScriptManager上的EnablePartialRendering为真(总值得检查!)。
  2. 确保__dopostback调用的eventTarget设置为更新面板的异步触发器,或者如果您只使用一个UpdatePanel,则它位于UpdatePanel内。 (See here for details
  3. 如果您已将此附加到按钮上,请尝试从onclick事件处理程序中执行的javascript代码返回false,以确保在您单击按钮时浏览器未正常提交表单。

答案 1 :(得分:0)

如果我正确理解了这个问题,您希望在页面进入浏览器后加载数据。如果是这种情况,则可以在客户端加载页面时使用JavaScript触发事件。

我使用的一种方法是在页面上放置一个隐藏的(带有CSS,而不是任何属性)按钮,然后用javascript“点击”它。按钮点击事件的事件需要在页面代码中连线。此外,该按钮必须位于更新面板中,该面板包含您要绑定的网格或具有相应的触发器以使其重新加载。

当这段代码被触发时,你可能会看看JQuery来进行管理。 $(document).ready(function(){/ *你的代码在这里...... * /});在整个DOM可用之后,方法将触发,这比等待整个页面加载(图像等)更快。