MVC Classic ウィジェット > Wijgrid > サーバーでの Wijgrid の作成 |
このトピックでは、より高度な wijgrid の例を提供し、サーバー側コードを使用して Web ページ上に wijgrid ウィジェットを作成する方法を説明します。
ソースビュー |
コードのコピー
|
---|---|
using PROJECTNAME.Models; |
ソースビュー |
コードのコピー
|
---|---|
public class ProductsController :Controller { NORTHWNDEntities northwind = new NORTHWNDEntities(); public ActionResult Index() { ViewBag.Message = "Products"; var products = northwind.Products.ToList(); return View(products); } public ActionResult Grid() { return View(); } public JsonResult GetRows() { //ページング string sPageSize = Request["paging[pageSize]"]; int pageSize = -1; if (!string.IsNullOrEmpty(sPageSize)) { pageSize = int.Parse(sPageSize); } string sPageIndex = Request["paging[pageIndex]"]; int pageIndex = -1; if (!string.IsNullOrEmpty(sPageIndex)) { pageIndex = int.Parse(sPageIndex); } <//ソート var sort = ""; var sortDir = ""; if (Request["sorting[0][dataKey]"] != null && Request["sorting[0][dataKey]"] != "") { sort = Request["sorting[0][dataKey]"]; if (Request["sorting[0][sortDirection]"] != null && Request["sorting[0][sortDirection]"] != "") { sortDir = Request["sorting[0][sortDirection]"]; if (sortDir.ToLower() == "ascending") { sort = "it."+ sort + " asc"; } else if (sortDir.ToLower() == "descending") { sort = "it."+ sort + " desc"; } } } IEnumerable products; if (sort != "") { products = from p in northwind.Products.OrderBy(sort).Skip(pageIndex * pageSize).Take(pageSize) select new ProductModel() { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice.Value }; } else { products = from p in northwind.Products.OrderBy("it.ProductID").Skip(pageIndex * pageSize).Take(pageSize) select new ProductModel() { ProductID = p.ProductID, ProductName = p.ProductName, UnitPrice = p.UnitPrice.Value }; } int totalCount = northwind.Products.Count(); var result = new { TotalRowCount = totalCount, Items = products }; return Json(result, JsonRequestBehavior.AllowGet); } } |
ソースビュー |
コードのコピー
|
---|---|
<head> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <link href="http://cdn.wijmo.com/themes/aristo/jquery-wijmo.css" rel="stylesheet" type="text/css" /> <link href="http://cdn.wijmo.com/jquery.wijmo-open.1.1.4.css" rel="stylesheet" type="text/css" /> <link href="http://cdn.wijmo.com/jquery.wijmo-complete.1.1.4.css" rel="stylesheet" type="text/css" /> <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.5.1.min.js" type="text/javascript"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.min.js" type="text/javascript"></script> <script src="http://cdn.wijmo.com/external/jquery.bgiframe-2.1.3-pre.js" type="text/javascript"></script> <script src="http://cdn.wijmo.com/external/jquery.glob.min.js" type="text/javascript"></script> <script src="http://cdn.wijmo.com/external/jquery.mousewheel.min.js" type="text/javascript"></script> <script src="http://cdn.wijmo.com/external/raphael-min.js" type="text/javascript"></script> <script src="http://cdn.wijmo.com/jquery.wijmo-open.1.1.4.min.js" type="text/javascript"></script> <script src="http://cdn.wijmo.com/jquery.wijmo-complete.1.1.4.min.js" type="text/javascript"></script> <script src="http://cdn.wijmo.com/external/jquery.tmpl.min.js" type="text/javascript"></script> </head> |
注意:CDNにリンクする場合は、 http://wijmo.c1.grapecity.com/download/#wijmo-cdn で最新バージョンの依存関係を使用していることを確認してください。CDN リンクは頻繁に更新されており、このマニュアルに示されているものより新しいバージョンが存在する場合があります。 |
ソースビュー |
コードのコピー
|
---|---|
<table class="productgrid"> </table> <script type="text/javascript"> $(document).ready(function () { var editArray = []; $(".productgrid").wijgrid({ dataKey:"ProductID", allowPaging:true, allowSorting:true, pageSize: 10, columns: [ { dataType:"number", dataFormatString: "n:0", width:"80px" }, {}, { dataType:"currency", width:"120px" } ], data:new wijdatasource({ dynamic:true, proxy:new wijhttpproxy({ url:"../../Products/GetRows", type:"POST", dataType:"json" }), reader: { read:function (datasource) { var count = datasource.data.TotalRowCount; datasource.data = datasource.data.Items; datasource.data.totalRows = count; new wijarrayreader([ { name:"ProductID", mapping: "ProductID" }, { name: "ProductName", mapping: "ProductName" }, { name:"UnitPrice", mapping: "UnitPrice" } ]).read(datasource); } } }) }); }); </script> |