1

我有一个页面结果页面(您在其他地方提交搜索查询后到达那里),其中包含针对不同类型数据对象的一大堆网格视图。

显然,一些查询比其他查询花费更长的时间。如何在每个 gridview 获得所需数据后立即渲染?

这对我来说很棘手,因为它必须在回发和页面加载上工作。此外,对象数据源只是在页面加载/回发时自动触发;我没有以编程方式调用任何方法来获取数据。我必须改变这个吗?

4

2 回答 2

2

@加雷斯詹金斯

该页面将在返回第一个更新面板之前执行所有查询,因此他不会在那里节省任何时间。

这样做的诀窍是将每个复杂的网格视图移动到用户控件中,在用户控件中,摆脱 Object DataSource 废话,并在后面的代码中进行绑定。

编写绑定代码,使其仅在这种情况下绑定:

if (this.isPostBack && ScriptManager.IsInAsyncPostback)

然后,在页面中,在页面加载后使用 javascript 以编程方式刷新更新面板,一旦准备好,您将获得每个单独的 gridview 渲染。

于 2008-09-12T18:38:10.990 回答
0

您能否将 DataGrids 放在其可见性设置为 false 的面板中,然后从主体的 onload 事件调用客户端 javascript 函数,该事件调用将面板的可见性设置为 true 的服务器端函数?

如果你将它与一个 asp:updateProgress 控件结合起来,并将整个东西包装在一个 UpdatePanel 中,你应该得到一些接近你正在寻找的东西 - 特别是如果你将 onload 中调用的 js 函数操纵为只显示一个面板并调用显示下一个等的返回函数。

于 2008-09-12T18:10:44.910 回答