使用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
和其他代码(停止并重新启动间隔,捕获下拉框更改和提交按钮点击),就像在工作{{1}中所做的那样}。主要区别在于我首先要进行AJAX调用以获取行数,但是如果有任何数据,则只在对话框/弹出/新页面中创建网格。下拉列表&此网格的提交按钮功能与其他网格的提交按钮功能相同(具有日期/时间和/或下拉选择的更新)。
我一直在寻找在目前上面有正常网格的页面上的DIV内构建对话框/弹出网格。
jqGrid
现有的,正常运行的网格位于上面显示的DIV正上方的HTML正文中:
<div id="popDailog">
<table id="popGrid" border="0" cellpadding="0" cellspacing="0" style="width:100%">
</table>
<div id="popPager"></div>
</div>
我的问题:
可以在模态对话框中构建jqGrid吗?如果没有,你如何在弹出窗口或新页面中打开它?大多数问题&amp;答案我看到处理编辑数据,但我没有这样做。
是否可以有条件地构建jqGrid(是否有控制它的选项)?我希望尽可能避免两次旅行。
我将不胜感激任何有关if&amp ;;的指导或意见。如何最好地做到这一点。
谢谢!
答案 0 :(得分: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(); }
});