У меня есть открытая веб-служба, которая возвращает данные в JSON или XML. Я создал страницу JSP и добавил в jQgrid. Данные отображаются очень хорошо, однако, когда я пытаюсь отфильтровать результаты с помощью filterToolbar, он терпит неудачу. Firebug говорит: « TypeError: jQuery.jgrid не определено».jQgrid filterToolbar не работает с searchOnEnter
Я читал почти все сообщения в jQuery и jqGrid, и я понятия не имею, почему я получаю эту ошибку. Я запускаю hibernate и Spring MVC из архетипа appfuse./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">
вар $ J = jQuery.noConflict(); (функция ($ к) {
$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);
Я открыл средство разработки с хромом и в консоли я сменил JQuery с $ J и он вернулся Fale. Я не совсем уверен, что это, как предполагается вернуться, но строка 307 существует в поле "idcveconfig".
Не могли бы вы добавить его в jsfiddle? –
Какая версия jqGrid и из какой вилки jqGrid ([free jqGrid] (https://github.com/free-jqgrid/jqGrid), [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334) или старый jqGrid в версии <= 4.7), который вы используете? Не могли бы вы изменить URL-адреса для jqGrid на URL-адреса для бесплатного jqGrid (см. [Wiki] (https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs)) и проверить, проблема существует и в бесплатном jqGrid? Если проблема существует, предоставьте демоверсию (с минимальным «jquery.jqgrid.src.js'), который можно использовать для воспроизведения проблемы. – Oleg
Я использовал последний из Guriddo, поэтому 5.2. После перехода на бесплатный jqGrid я увидел, что несколько пользовательских интерфейсов разобрались, и он работал лучше на хроме. Но я все еще терплю неудачу на том же месте. Но провал более ясен. теперь он говорит «Uncaught TypeError: невозможно прочитать свойство« getAccessor »неопределенного» (String (jQuery.jgrid.getAccessor (this, 'idcveconfig')). toUpperCase(). substr (0,3) == String ("307") .toUpperCase()) « –