2010-11-23 18 views
0

mvcプロジェクトにjqueryグリッドをインストールし、jquery UIにフックしました。初期ロードは正常で、コントローラー内のアクションへの呼び出しが表示され、結果は期待どおりに表示されます。いずれかのヘッダーをクリックしてソートすると、何も起こらず、コントローラー内でアクションが呼び出されません。私は火かき棒の中に何の誤りもありません。ただの出来事ではありません。jqGridイベントが起動しない

私に何か不足していますか?

public ActionResult GetRateTypes(string sidx, string sord, int page, int rows) 
     { 
      int totalPages = 1; // we'll implement later 
      int pageSize = rows; 
      int totalRecords = 3; // implement later 

      var jsonData = new 
      { 
       total = totalPages, 
       page = page, 
       records = totalRecords, 
       rows = new[]{ 
        new {id = 1, cell = new[] {"1", "-7", "Is this a good question?"}}, 
        new {id = 2, cell = new[] {"2", "15", "Is this a blatant ripoff?"}}, 
        new {id = 3, cell = new[] {"3", "23", "Why is the sky blue?"}} 
       } 
      }; 
      return Json(jsonData, JsonRequestBehavior.AllowGet); 
     } 


<script type="text/javascript"> 
     jQuery(document).ready(function() { 
      jQuery("#list").jqGrid({ 
      url: '/Configuration/GetRateTypes', 
       datatype: 'json', 
       mtype: 'GET', 
       colNames: ['Code', 'Name', 'Rate'], 
       colModel: [ 
      { name: 'Code', index: 'Code', width: 40, align: 'left' }, 
      { name: 'Name', index: 'Name', width: 40, align: 'left' }, 
      { name: 'Rate', index: 'Rate', width: 400, align: 'left'}], 
       pager: jQuery('#pager'), 
       rowNum: 1, 
       rowList: [5, 10, 20, 50], 
       sortname: 'Code', 
       sortorder: "desc", 
       viewrecords: true, 
       imgpath: '/css/blitzer/', 
       caption: 'Interest Rate Types' 
      }); 
     }); 
    </script> 

答えて

0

datatype: 'json'を使用すると、サーバーはデータのソートとページングを担当します。現在のサーバーコード(GetRateTypes)はこれを行いません。たとえば、並べ替えとページングの実装方法を示す古い回答(this)を見てください。

+0

返事をありがとう。私はそのアクションが何の並べ替えもしないことを知っていて、それを単純化のために残しました。私が抱えている問題は、ソートイベントがアクションに戻っていないということです。列ヘッダーをクリックすると、イベントは発生しませんので、コントローラー内のアクションは呼び出されません。 – Chev

+0

@Chev:列ヘッダーをクリックするとグリッドが再ロードされ、 'GetRateTypes'が別の' sidx'と 'sord'値で呼び出されます。 – Oleg

+0

@Chev:おそらく、jqGridで使用されるいくつかのオプションも "簡単に"削除されましたか?たとえば、 'loadonce:true'を使用した場合、最初の先頭の後に' datatype: 'json''が 'datatype:' local''に変更され、ソートやページングのようなアクションはあなたの呼び出しなしでローカルで行われますサーバーコンポーネント。実際に使用しているコードを投稿することを確認してください。一方、デフォルトの 'align: 'left'は' colModel'のすべての項目から削除でき、廃止されたパラメータ 'imgpath'もjqGridで使用されていないので削除する必要があります。 – Oleg

0

jqGridはソート方法がわからないため、おそらくソートされません。 colModelプロパティの各列に「sorttype」プロパティを適用してみます。 近くを読むdocumentation

+0

返信いただきありがとうございます。私はそのアクションが何の並べ替えもしないことを知っていて、それを単純化のために残しました。私が抱えている問題は、ソートイベントがアクションに戻っていないということです。列ヘッダーをクリックすると、イベントは発生しませんので、コントローラー内のアクションは呼び出されません。 – Chev

関連する問題