0

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

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

setInterval以上每 60 秒运行一次。该网格按应有的方式运行。

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

我一直在考虑在页面上的 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(是否有控制它的选项)?如果可能的话,我想避免两次旅行。

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

谢谢!

4

1 回答 1

1

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(); }
}); 
于 2013-07-02T07:49:37.730 回答