JSONまたはXMLのいずれかでデータを返す公開されたWebサービスがあります。JSPページを設定し、jQgridに追加しました。データは問題なく表示されますが、filterToolbarで結果をフィルタリングしようとすると、失敗します。Firebugは「TypeError:jQuery.jgridは未定義です」と言っています。
jQueryとjqGridのほとんどすべての投稿を読みましたが、なぜこのエラーが発生するのかわかりません。appfuseアーキタイプからHibernateとSpringMVCを実行しています。/ 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で開発ツールを開き、コンソールでjQueryを$ jと交換したところ、faleが返されました。何が返されるのか正確にはわかりませんが、文字列307がフィールド「idcveconfig」内に存在します。
私を正しい方向に向けさせてくれた@Olegに叫んでください!
同じ設定を使用している可能性のある人のための完全なシナリオは次のとおりです。Appfuse.org Appfuse SpringMVCと休止状態のアーキタイプを使用してWebアプリを作成しました。このフレームワークには、このアプリを非常にスムーズに実行するのに役立つ多くの追加機能が付属していますが、ドキュメントには、含まれているすべての機能について実際に説明されているわけではありません。
Appfuseには、一連のスクリプトをロードするWeb Resource Optimizerが含まれていますが、パフォーマンスが向上すると思います。このWROは、「main.js」というスクリプトファイルを作成します。このファイルは、WRO.XMLに読み込まれるスクリプトを組み合わせたものです。main.jsがロードされると、ローカル/保護された変数が上書きされ、ロードしていたjqueryとの競合が発生しました。
WRO.xmlとEUREKAからjqueryを削除しました!!!! できます!次のステップは、jqgridスクリプトをWRO.xmlに移動して、それが機能するかどうかを確認することです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加