gpt4 book ai didi

jquery - jQgrid filterToolbar 因 searchOnEnter 而失败

转载 作者:行者123 更新时间:2023-12-01 01:42:32 25 4
gpt4 key购买 nike

我有一个公开的 Web 服务,它以 JSON 或 XML 形式返回数据。我已经设置了一个 JSP 页面并添加到 jQgrid 中。数据显示得很好,但是当我尝试使用 filterToolbar 过滤结果时,它失败了。 Firebug 说“类型错误:jQuery.jgrid 未定义”。

我已经阅读了几乎所有关于 jQuery 和 jqGrid 的文章,但我不知道为什么会收到此错误。我正在从 appfuse 原型(prototype)运行 hibernate 和 Spring MVC。/services/api/vulnss 将根据请求类型返回 xml 或 json。 json 和 XML 都可以很好地填充网格,我可以对所有内容进行排序和分页。

<html>
<head>


<link href="/resources/css/ui.jqgrid.css" rel="stylesheet" type="text/css"/>
<link href="/resources/css/ui.jqgrid-bootstrap.css" rel="stylesheet" type="text/css"/>
<link href="/resources/css/ui.jqgrid-bootstrap-ui.css" rel="stylesheet" type="text/css"/>





<script type="text/javascript" src="/resources/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="/resources/js/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="/resources/js/jquery.jqGrid.min.js"></script>

</head>

脚本部分:

 <script type="text/javascript"> 

var $j = jQuery.noConflict();(函数($j){

          $j().ready(function (){
$j("#jqGrid").jqGrid({
url: '/services/api/vulns',
mtype: "GET",
//styleUI : 'Bootstrap',
datatype: "xml",
colModel: [
{ label: 'idcveconfig', name: 'idcveconfig', key: true, width: 75 },
{ label: 'cveid', name: 'cveid', width: 150 },
{ label: 'product', name: 'product', width: 150 },
{ label: 'version', name: 'version', width: 150 },
{ label:'vendor', name: 'vendor', width: 150 },
{ label:'vulnsummary', name: 'vulnsummary', width: 150 }
],
viewrecords: true,
loadonce: true,
height: 250,
rowNum: 20,
gridview: true,
pager: "#jqGridPager",
caption: "LOading data from server at once",
xmlReader : {
root: "List",
row: "item",
//page: "rows>page",
//total: "rows>total",
//records : "rows>records",
repeatitems: false,
//cell: "cell",
//id: "[id]",
//userdata: "userdata",

}


});
$j("#jqGrid").filterToolbar({searchOnEnter : true});

});
})( jQuery );

我用 chrome 打开开发工具,在控制台中我用 $j 交换了 jQuery,它返回了 fale。我不太确定它应该返回什么,但字符串 307 存在于“idcveconfig”字段中。

enter image description here

最佳答案

当前的过滤实现使用全局jqGrid。它不能使用您在 noConflict() 中设置的 $j。我建议您添加

<script type="text/javascript">
$.jgrid = $.jgrid || {};
$.jgrid.no_legacy_api = true;
</script>

jquery.jqGrid.min.js 之前,并且仅以 $j("#jqGrid").jqGrid("filterToolbar", 形式使用 jqGrid 方法的使用风格{searchOnEnter: true}); 而不是 $j("#jqGrid").filterToolbar({searchOnEnter: true});。它减少了可能的冲突。此外,您应该设置全局 jQuery 变量(例如 window.jQuery = $j;)。

更新:我更准确地检查了您的代码,在我看来,您使用 filterToolbar 应该没有问题。您当前的代码仍然设置了 global jQuery 变量,该变量需要 jqGrid 使用。我尝试使用非常接近的代码与免费的 jqGrid 并且没有任何问题。我认为你可以准备的演示可以清除一切。

关于jquery - jQgrid filterToolbar 因 searchOnEnter 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35739589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com