使用jqGrid 4.5.2&jQuery 1.9.1。查询SQL表以返回数据,从而在jqGrid中显示结果。我没有对数据进行任何编辑。
jqGrid使用custom formatter
来显示查询的结果。在自定义格式化程序中,根据返回的数据(列隐藏在jqGrid中),在名为Action
的列中显示以下三项之一:(1)下拉框、(2)提交按钮或(3)信息消息。此外,rowattr
用于格式化该行中的(字体、颜色、大小、样式)信息(同样基于返回的数据)。当进行下拉选择时,该行将使用下拉值&日期/时间。同样,当单击提交按钮时,它也会使用日期/时间更新表。
以上每60秒在setInterval
上运行一次。这个网格按预期运行。
除了上面的网格是如何工作的,我还需要有条件地构建&启动另一个网格。我将采用与上面使用的网格设置完全相同的网格设置,jqGrid将显示在对话框、弹出窗口或新页面中。我会查询另一个表,但返回与当前相同的字段。这个网格还将使用custom formatter
、rowattr
和其他代码(停止和重新启动间隔,捕捉下拉框更改和提交按钮单击),就像在工作的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(是否有控制它的选项)?如果可能的话,我想避免两次旅行。
如果有任何指导或意见,我将不胜感激;如何最好地做到这一点。
谢谢!
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(); }
});