按顺序加载两个jqgrids(序列ajax调用)

时间:2011-04-27 21:40:17

标签: javascript jquery ajax jqgrid

我的页面中有两个jqgrids。当页面加载时,我会向使用modeldialogwindow调用的用户弹出ajax。我将使用用户选择的弹出窗口中的值来填充jqgrids。我可以延迟jqgrid加载ajax调用吗? (通过提供timeout?)我的问题是有时网格ajax在弹出窗口之前调用fires。所以从后端它会抛出一个错误。 (因为用户选择的值不存在。我需要按顺序执行以下操作。

  1. 显示弹出窗口。等待用户响应(这将在使用window.showModalDialog时自动发生)获取用户选择的值并发布到后端。

  2. 发送ajax调用以加载第一个网格。

  3. 发送ajax调用以加载第二个网格。

  4. 因为在'$(document).ready' i无法延迟之后,jqgrids正在填充。

    感谢您的帮助。提前谢谢。

2 个答案:

答案 0 :(得分:8)

您应该在初始化时将两个网格的datatype参数设置为'local'。它会阻止任何ajax次呼叫。在用户选择ajax请求所需的所有参数后,您应将datatype设置为'json'(或'xml',具体取决于您的要求)并触发reloadGrid

$("#list").setGridParam({datatype:'json',page:1}).trigger('reloadGrid');

答案 1 :(得分:0)

不要在$(document).ready上调用jqgrid函数,而是将其移动到用户在模态框中进行选择后触发的事件。