0

最近、jqGrid を使用してビジネス データ セットを表現していますが、jqGrid で編集/追加/削除/表示機能があることがわかったので、それを使用してみます。しかし、問題が発生し、最善を尽くしても解決できません。

私はこのサイトのサンプルに従ってそれを行います:

jQuery("#deptGrid").jqGrid('navGrid', '#deptNav', {
    view : true
}, 
{
    jqModal : true,
    checkOnUpdate : true,
    savekey : [ true, 13 ],
    navkeys : [ true, 38, 40 ],
    checkOnSubmit : true,
    reloadAfterSubmit : false,
    closeOnEscape : true,
    bottominfo : "Fields marked with (*) are required"
}, {
    jqModal : true,
    checkOnUpdate : true,
    savekey : [ true, 13 ],
    navkeys : [ true, 38, 40 ],
    checkOnSubmit : true,
    reloadAfterSubmit : false,
    closeOnEscape : true,
    bottominfo : "Fields marked with (*) are required"
}, {
    reloadAfterSubmit : false,
    jqModal : false,
    closeOnEscape : true
}, {
    closeOnEscape : true
}, {
    navkeys : [ true, 38, 40 ],
    height : 250,
    jqModal : false,
    closeOnEscape : true
});

更新:以下はすべて私のものです:

<link rel="stylesheet" type="text/css" href="<%=BASE_PATH %>admin/styles/stylesheet.css" />
<link rel="stylesheet" type="text/css" href="<%=BASE_PATH %>admin/js/jquery/ui/themes/ui-lightness/ui.all.css" />

<link rel="stylesheet" type="text/css" media="screen" href="<%=BASE_PATH %>jqGrid4.4.1/themes/redmond/jquery-ui-1.8.2.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="<%=BASE_PATH %>jqGrid4.4.1/themes/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="<%=BASE_PATH %>jqGrid4.4.1/themes/ui.multiselect.css" />

<!-- Including JS -->
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery-ui-1.8.custom.min.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/superfish/js/superfish.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/tab.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/global.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/thickbox/thickbox.js"></script>
<link  rel="stylesheet" type="text/css" href="<%=BASE_PATH %>admin/js/jquery/thickbox/thickbox.css" />
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery.form.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery.validate.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery-ui-timepicker-addon.js"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.bgiframe-2.1.2.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.core.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.widget.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.button.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.position.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.resizable.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.dialog.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.effects.core.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>js/kevinshi.js" type="text/javascript"></script>

<script src="<%=BASE_PATH %>jqGrid4.4.1/js/jquery.jqGrid.src.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>jqGrid4.4.1/js/i18n/grid.locale-en.js" type="text/javascript"></script>

更新:ボタンをクリックして編集/追加/削除するたびに、firebug内で常にエラーが発生します:

$.type is not a function 
var obj = $.type( pref );

私はそれをjqGridソースコードに追跡します.このエラーは以下のようにファイルの52行目で発生しjquery.jqGrid.src.jsます:

stripPref : function (pref, id) {
var obj = $.type( pref ); // Happened at this line.
if( obj == "string" || obj =="number") {
pref = String(pref);
id = pref !== "" ? String(id).replace(String(pref), "") : id;
}
return id;
}, 

jQuery.type()したがって、現時点では、メソッドが見つかったと言えますが、ライブラリが含まれてjquery.min.jsいるため、非常に混乱しています。

4

3 に答える 3

0

まったく同じエラーメッセージが表示されました。他の誰かに役立つかもしれない場合に備えて、私にとってうまくいったことを投稿しています。フォームから保存しようとすると、TypeError: b.type is not a function が発生しました。私が使用している jqgrid のバージョンは 4.4.3 で、古いバージョンの jquery (1.4.2) を呼び出していました。新しいバージョンのjquery(私の場合は1.7.2)を使用すると、問題が修正されました。関数 'type' はバージョン 1.4.2 にはなかったと思います。

于 2013-04-04T21:31:48.733 に答える
0

この問題を解決しました。jqGridをサポートしていないという理由だけでjQuery 1.9

于 2013-07-02T04:37:17.513 に答える
0

同じモジュールを実装した 2 つの JavaScript ファイルを複数回含めるのは誤りです。さらに、JavaScript ファイルを正しい順序で含めることが重要です。さらに、使用しないプラグインは含めないでください。

通常、1つは使用します

i18n/grid.locale-en.js
jquery.jqGrid.src.js

いくつかのソリューションと用途の開発中

i18n/grid.locale-en.js
jquery.jqGrid.min.js

最終的な解決策で。ドキュメントを参照してください。

jqGrid JavaScript ファイルのに jQuery を含める必要があります。ui.jqgrid.cssおよび jQuery UI CSSを含めることも必要です。

それでもエラーが発生する場合は、エラーが発生した正確な行番号を投稿する必要がjquery.jqGrid.src.jsあります。使用する完全な JavaScript コードを投稿する必要があります。

于 2013-01-05T13:32:14.980 に答える