使用jQGrid v4.2和jQuery 1.8我无法使搜索工作。当我点击搜索按钮时没有任何反应......
我使用v4.2的原因是因为它是jqgrid nuget包的最新版本(令人恼火的是作者没有更新它)。
有没有人有解决方法?我将用最新版本测试它,看看它是否是一个bug。在此示例中,它不适用于数据类型:local但它也不适用于具有json数据的网格。我做错了吗?
<link href="../../Content/themes/base/minified/jquery-ui.min.css" rel="stylesheet" type="text/css" />
<link href="../../Content/jquery.jqGrid/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.23.js" type="text/javascript"></script>
<script type="text/javascript" src="../../Scripts/i18n/grid.locale-en.js"></script>
<script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>
<script type="text/javascript">
var mydata = [{ id: "1", name: "foo" }, { id: "2", name: "bar"}];
jQuery(document).ready(function () {
jQuery("#lgrid").jqGrid({ data: mydata,
datatype: "local",
height: 150,
width: 600,
rowNum: 10,
rowList: [10, 20, 30],
colNames: ['id', 'name'],
colModel: [{ name: 'id', index: 'id', width: 60, sorttype: "int" },
{ name: 'name', index: 'name', width: 60}],
pager: "#pgrid",
viewrecords: true,
caption: "Contacts"
});
jQuery("#lgrid").jqGrid('navGrid', '#pgrid', { del: false, add: false, edit: false });
});
</script>
<table id="lgrid"></table>
<div id="pgrid"></div>
编辑:使用jqGrid v4.4.1 ...所以我猜它是一个错误。可惜我再也不能使用nuget包了:(
答案 0 :(得分:2)
我在同样的问题上苦苦挣扎,在我找到jQgrid搜索无法与jQuery 1.8.0一起使用的原因之后:
在我的jquery.jqGrid.js(v 4.3.2)中,我发现了这个:
if ($("#" + $.jgrid.jqID(IDs.themodal)).html() !== null) {
showFilter($("#fbox_" + $.jgrid.jqID(+$t.p.id)));
}
在我的文件中,它位于第6863行,但您可能需要搜索它,因为我的文件可能与原始文件相比有点修改。
问题是 $([id])。html()在旧的jQuery版本中求值为null,而在jQuery 1.8.0中,它的计算结果为undefined!由于(undefined!== null)为真且(null!== null)为false,因此代码对不同版本的jQuery执行不同的操作。
我做了什么来修复它,并使其与jQuery 1.8.0一起使用是将比较器从!==更改为!=。这是有效的,因为(null!= null)和(null!= undefined)计算结果为true!
希望这可能有所帮助!