私は jQuery の初心者なので、ここで単純なものが欠けていると確信しています。
LINQ-to-Entities 操作から JSON データを作成するアクションで jqGrid を使用しています。しかし、ブラウザーで列ヘッダーをクリックすると、行がソートされません。昇順/降順インジケーターが表示されますが、他に何も起こりません。
必要な JavaScript と CSS のリンクは、マスター ページのヘッダーにあります。
<script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script> <!-- 詳細ページに表示する jqGrid の CSS および JavaScript ファイル --> <link rel="stylesheet" type="text/css" href="/scripts/jQuery/jqGrid-3.4.4/themes/green/grid.css" title="green" media="screen" /> <script src="/Scripts/jQuery/jqGrid-3.4.4/jquery.jqGrid.js" type="text/javascript"></script> <script src="/Scripts/jQuery/jqGrid-3.4.4/js/jqModal.js" type="text/javascript"></script> <script src="/Scripts/jQuery/jqGrid-3.4.4/js/jqDnR.js" type="text/javascript"></script>
これが私の初期化コードです:
// jqGrid のセットアップ。 $("#gridlist").jqGrid({ url: '/Contact/GridData', データ型: 'json', mtype: 'GET', colNames: ['ID', '名', '姓', '組織'], colModel: [ { 名前: 'id', インデックス: 'id', 幅: 40, 整列: '左', サイズ変更可能: true }, { name: 'first_name', index: 'first_name', width: 200, align: 'left', resizable: true, sortable: true, sorttype: "text" }, { name: 'last_name', index: 'last_name', width: 200, align: 'left', resizable: true, sortable: true, sorttype: "text" }, { name: 'organization', index: 'organization', width: 300, align: 'left', resizable: true, sortable: true, sorttype: "text"}], ページャー: jQuery('#pager'), 行数: 5, 行リスト: [5, 10, 20, 50], 繰り返しアイテム: false, ビューレコード: true, imgpath: '/scripts/jQuery/jqGrid-3.4.4/themes/green/images', キャプション:「連絡先」 });
HTML は次のとおりです。
<h3>マイ グリッド データ</h3> <table id="gridlist" class="scroll" cellpadding="0" cellspacing="0"> </表> <div id="pager" class="scroll" style="text-align:center;"> </div>
そして、完全を期すために、アクションメソッドは次のとおりです。
public ActionResult GridData() { var page = new { page = 1 }; IEnumerable 連絡先 = _db.ContactSet; int i = 0; var 行 = 新しいオブジェクト [contacts.Count()]; foreach (連絡先の連絡先) { 行[i] = 新しい { id = contact.ID, cell = new[] { contact.ID.ToString(), contact.First_Name, contact.Last_Name, contact.Organization } }; i++; } var 結果 = 新しい JsonResult(); result.Data = new { ページ = 1、レコード = 2、行、合計 = 1 }; 結果を返します。 }
ここで見逃している明らかな設定はありますか?