mvcrazorでjqGridを使用する
jqGrid json形式を使用して、グリッドをバインドできるクラスが必要です。
jqGridに必要なJSONデータを生成するためにクラスを定義する必要はないと思います。匿名オブジェクトを返すことができます:
public JsonResult DynamicGridData (string sidx, string sord, int page, int rows)
{
var query = ...;
var totalRecords = query.Count();
return Json(new {
total = (totalRecords + rows - 1) / rows,
page,
records = totalRecords,
rows = (from item in query
select new {
id = item.Id.ToString(),
cell = new[] {
item.FirstName,
item.LastName,
item.Votes.ToString(),
item.Title
}
}).ToList()
},
JsonRequestBehavior.AllowGet);
}
まず、これはStackoverflow.comで質問する間違った方法です。よくある質問とwhathaveyoutried.comをお読みください。
しかし、あなたはStackoverflowを初めて使用するので、これに答えます。
public class JqGridModel<T>
{
public int page { get; set; }
public Int32? total { get; set; }
public Double? records { get; set; }
public IEnumerable<T> GridData { get; set; }
public JqGridModel<T> Bind(IEnumerable<T> data)
{
records = data.Count();
GridData = data;
page = 1;
return this;
}
}
あなたが言ったあなたのコメントからも、
実際、私はmvcrazorとentityframeworkでjqgridを使用しようとしています。
この記事を一度読んでおくことをお勧めします。役立つかもしれません。ここでもjqGridクラスは次のように定義されています...上記のクラスはより一般的ですが、すべてユースケースによって異なります。
public class JqGridObject
{
public string Page { get; set; }
public int PageSize { get; set; }
public string SortColumn { get; set; }
public string SortOrder { get; set; }
public List<Fruit> Data { get; set; }
}
public class Fruit
{
public int Id { get; set; }
public string Name { get; set; }
}