2011-12-22 5 views
0

JqGridを動的に生成したいと思います。これを行うには、HTMLコンテンツを作成するためにリストをループします。JqGrid、グリッドIDをパラメータとして与える

 @foreach(string clientCode in ViewBag.Codes) 
    { 
     <table class="jqgCode" id="[email protected]" cellpadding="0" cellspacing="0"></table> 
     <div id="[email protected]" style="text-align:center;"></div> 
    } 

私は、一意のコードの値でグリッドのIDを動的に生成します。

グリッドは基本的にデータが変更されるだけの同じフォーマットを持ち、コードはSQLリクエストを変更するパラメータです。だから私がしたいのは、私のコントローラで自分の行動に与えるためにグリッドIDを取得することです。ここで

は私がやろうとしているものです:デバッグモードで

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.jqgCode').jqGrid({ 
     //url from wich data should be requested 
     url: '@Url.Action("CodeDetail")', 
     //type of data 
     datatype: 'json', 
     //url access method type 
     mtype: 'POST', 
     postData: {code: $(this).attr('id')}, 
     ......... 
     }); 
}); 

私はアクションメソッドに探していたとき、「コードの詳細」、私が「コードでnull値を持っていることがわかりパラメータ。

コントローラーにグリッドIDを設定する方法を教えてください。たぶん、私がやりたいことをするためのより良い方法があるので、すべてのアドバイスは良いことです。

ありがとうございます!

答えて

1

​​は、1つの要素($('.jqgCode').lengthは1でなければならない)を返さなければならないという問題が1つあります。これをしないと、同じURL('@Url.Action("CodeDetail")')を使用して2つのグリッドを持つことができ、IDはサーバーから返されたデータに重複します。場合

$('.jqgCode').lengthが1に等しい場合は、次のようにJavaScriptコードを書き換えることができます。

$(document).ready(function() { 
    var $myGrid = $('.jqgCode'), gridId = $myGrid.attr('id'); 
    $myGrid.jqGrid({ 
     url: '@Url.Action("CodeDetail")', 
     datatype: 'json', 
     mtype: 'POST', 
     postData: {code: gridId}, 
     ......... 
     }); 
}); 
関連する問題