私はそれをどのように行うかをステップアウトします。これはあなたにも役立つと思います(MVC3バックエンドを使用して多数のjqGridを構築します。
すでにHTMLコンポーネントがありますが、このようなものを使用することもできます。
<div id="ExampleGridContainer" >
<table id="ExampleGridName" class="scroll" cellpadding="0" cellspacing="0" ></table>
<div id="ExampleGridPager" class="scroll" style="text-align:center;"></div>
</div>
次に、Javascriptについて、両方への参照を含める必要があります(この例では、場所として英語を使用しています)
<script src="@Url.Content("~/Scripts/trirand/i18n/grid.locale-en.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/trirand/jquery.jqGrid.min.js")" type="text/javascript"></script>
_Layout.chtmlのいずれかである場合、または_Layout.chtmlに含まれている場合は、これをページに含めることができます。
次に、ビューのスクリプト部分内で、次のようなものを作成できます。
<script type="text/javascript">
$(document).ready(function () {
//initalize jqGrid
$('#ExampleGridName').jqGrid({
datatype: 'json',
url: '/ControllerName/ActionName',
colNames: [ 'ColumnOneName', 'ColumnTwoName']
colModel: [
{ name: 'ColumnOneName', //etc}
{ name: 'ColumnTwoName', //etc}
],
pager: $('#ExampleGridPager'),
rowNum: 5,
rowList: [5,10,20],
sortname: 'ColumnOneName',
//etc
//rest of grid settings
});
});
</script>
上記の例では、ビューが表示され、readyイベントが処理されるときにプロパティが入力され、グリッドがURLに移動してデータを検索しますdatatype: 'json'
。url:
後で別のアクションの後でこれを実行する場合、または動的に繰り返す場合は、プロパティdatatype: 'local',
なしで開始できurl:
ます。
これらのプロパティを設定してグリッドをリロードするときは、次のいずれかになります。
//set the `datatype:` and `url:` properties and load the grid
$('#ExampleGridName').jqGrid('setGridParam', { datatype: 'json', url: '/ControllerName/ActionName' }).trigger('reloadGrid', [{ page: 1}]);
//reload the grid if the `datatype:` and `url:` properties are already configured
$('#ExampleGridName').jqGrid().trigger('reloadGrid', [{ page: 1}]);
コントローラーには、データの要求に応答し、JSON形式で結果を生成できるアクションがあります。これは、動的ロードを使用してMVC3 jqGridを起動して実行する方法の基本的な例を超えるものではなく、より高度なフィルタリング、検索などのオプションが多数あります。
public ActionResult ActionName(string sidx, string sord, int page, int rows, bool _search, string filters)
{
//load data from somthing,
IQuerable<Object> results = database.getresults //whatever you want to populate a set of data really
int totalRecords = results.Count();
var pagedResults = results.OrderBy(sidx + " " + sord).Skip((page -1) * rows).Take(rows);
var jsonData = new
{
total = (totalRecords + rows - 1) / rows,
page = page,
records = totalRecords,
rows = (
from tempValue in pagedResults.ToList()
select new
{
cell = new string[] {
tempValue.ColumnOneValue,
tempValue.ColumnTwoIntValue.ToString(),
//Etc
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}//ActionName
これは、jqGridを表示し、他のアクション/イベントの後に動的に対話するための非常に基本的な方法です。enter code here