jqGrid-在对话框、弹出窗口或新页面中显示网格



使用jqGrid 4.5.2&jQuery 1.9.1。查询SQL表以返回数据,从而在jqGrid中显示结果。我没有对数据进行任何编辑。

jqGrid使用custom formatter来显示查询的结果。在自定义格式化程序中,根据返回的数据(列隐藏在jqGrid中),在名为Action的列中显示以下三项之一:(1)下拉框、(2)提交按钮或(3)信息消息。此外,rowattr用于格式化该行中的(字体、颜色、大小、样式)信息(同样基于返回的数据)。当进行下拉选择时,该行将使用下拉值&日期/时间。同样,当单击提交按钮时,它也会使用日期/时间更新表。

以上每60秒在setInterval上运行一次。这个网格按预期运行。

除了上面的网格是如何工作的,我还需要有条件地构建&启动另一个网格。我将采用与上面使用的网格设置完全相同的网格设置,jqGrid将显示在对话框、弹出窗口或新页面中。我会查询另一个表,但返回与当前相同的字段。这个网格还将使用custom formatterrowattr和其他代码(停止和重新启动间隔,捕捉下拉框更改和提交按钮单击),就像在工作的jqGrid中所做的那样。主要的区别是,我会先调用AJAX来获取行数,但只有在对话框/popup/new页面中创建网格(如果有任何数据)。下拉列表&此网格的提交按钮功能与其他网格的相同(使用日期/时间和/或下拉选择进行更新)。

我一直在考虑在页面上的DIV内构建对话框/弹出式网格,该页面目前有上面的功能网格

<div id="popDailog">
  <table id="popGrid" border="0" cellpadding="0" cellspacing="0" style="width:100%">
  </table>
  <div id="popPager"></div>
</div>

现有的、正在运行的网格位于HTML的主体中,直接位于上面显示的DIV之上:

<table id="myGrid" border="0" cellpadding="0" cellspacing="0"  style="width: 100%">
</table>
<div id="pager1"></div>

我的问题:

jqGrid可以在模式对话框中构建吗?如果没有,如何在弹出窗口或新页面中打开它?大多数问题&我看到的答案与编辑数据有关,但我没有这么做。

是否可以有条件地构建jqGrid(是否有控制它的选项)?如果可能的话,我想避免两次旅行。

如果有任何指导或意见,我将不胜感激;如何最好地做到这一点。

谢谢!

Jquery代码没有在模态对话框中运行,因此调用程序可以在上运行,并打开:
function initGrid() {
    jQuery("#popGrid").jqGrid({
    url:'...',
    colNames:[...],
    colModel:[...],
    rowNum:20,
    pager: '#popPager',
    ...
}
var dialog = $('#popDailog');
dialog.dialog({
    bgiframe: true,
    modal: true,
    width: 700,
    buttons: {...},
    (...)
    open: function(event, ui) { initGrid(); }
}); 

相关内容

最新更新