mvc4を使用しています。私のページの 1 つに、Kendo Grid があります。1 ページあたり 5 行を表示したい。純粋なjavascriptを使用しても問題ありませんが、mvcヘルパーを使用している場合. オンラインでサンプルを見つけることができませんでした。
これが私のJavaScriptコードです。
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("#grid").kendoGrid({
dataSource: {
type: "json",
serverPaging: true,
pageSize: 5,
transport: { read: { url: "Products/GetAll", dataType: "json"} },
schema: { data: "Products", total: "TotalCount" }
},
height: 400,
pageable: true,
columns: [
{ field: "ProductId", title: "ProductId" },
{ field: "ProductType", title: "ProductType" },
{ field: "Name", title: "Name" },
{ field: "Created", title: "Created" }
],
dataBound: function () {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
});
});
今、mvcヘルパーを使用している場合
@(Html.Kendo().Grid(Model)
.Name("Grid") //please help me to finish the rest
更新:
アクション コードの追加。
[HttpPost]
public ActionResult GetAll([DataSourceRequest]DataSourceRequest request, int id)
{
var products= ProductService.GetAll(id);
return Json(products.ToDataSourceResult(request));
}
サービス層の GetAll メソッド:
public IQueryable<Product> GetAll(int id)
{
var products= ProductRepository.Get(p => p.Id== id && p.IsActive == true, null, "ProductionYear")
.OrderBy(o => o.Name); //.ToList();
return Product.Select(p => new ProductVM()
{
Name = p.Name,
ProductionYear= p.ProductionYear.Year.ToString()
Id = p.Id
}).AsQueryable();
}
今、アプリを実行すると、次のエラーが表示されます。
「LINQ to Entities はメソッド 'System.String ToString()' メソッドを認識しないため、このメソッドはストア式に変換できません。」}
GetAll メソッドで、"ToList()" をコメントアウトします。ToList を使用すると、すべてが機能します。ただし、そのページに必要な行だけではなく、すべての行を照会します。