| 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>
|
|
