本节教你如何使用JQuery显示MVC数据。在这之前了解了解Json(张森)。前台代码
<
%@ Page
Title
="" Language="C#"
MasterPageFile
="~/Views/Shared/Site.Master"
Inherits
="System.Web.Mvc.ViewPage" %
>
< asp:Content ID ="Content1" ContentPlaceHolderID ="TitleContent" runat ="server" >
GridData
</asp:Content>
< asp:Content ID ="Content3" runat ="server" ContentPlaceHolderID ="HeadContent" >
<link rel="stylesheet" type="text/css" href="../../Scripts/Themes/steel/grid.css"
title="green" media="screen" />
< script src ="../../Scripts/jquery-1.3.2.js" type ="text/javascript" > </script>
< script src ="../../Scripts/js/min/grid.locale-en-min.js" type ="text/javascript" > </script>
< script src ="../../Scripts/jquery.jqGrid.js" type ="text/javascript" > </script>
< script type ="text/javascript" src ="../../Scripts/JS1/Common.js" > </script>
< script type ="text/javascript" >
jQuery(document).ready(function () {
jQuery("#list").jqGrid({
url: '/Movie/GridData',
datatype: 'json',
colNames: ['电影编号', '电影名称', '播放时间'],
colModel: [
{ name: 'Id', index: 'Id', width: 100, align: 'left', sorttype: "int" },
{ name: 'Movie_Name', index: 'Movie_Name', width: 100, align: 'left' },
{ name: 'Realease_Date', index: 'Realease_Date', width: 100, align: 'left'}],
pager: jQuery('#pager'),
rowNum: 10,
rowList: [1, 2, 3],
//autowidth: true,
width: '500',
sortname: 'Id',
sortorder: 'desc',
viewrecords: true,
imgpath: '../../Scripts/themes/coffee/images',
caption: '电影信息'
});
});
</script>
</asp:Content>
< asp:Content ID ="Content2" ContentPlaceHolderID ="MainContent" runat ="server" >
< table id ="list" class ="scroll" cellpadding ="0" cellspacing ="0" >
</table>
< div id ="pager" class ="scroll" style ="text-align: center;" >
</div>
< %: Html.ActionLink("跳转到主界面","Index") % >
</asp:Content>
< asp:Content ID ="Content1" ContentPlaceHolderID ="TitleContent" runat ="server" >
GridData
</asp:Content>
< asp:Content ID ="Content3" runat ="server" ContentPlaceHolderID ="HeadContent" >
<link rel="stylesheet" type="text/css" href="../../Scripts/Themes/steel/grid.css"
title="green" media="screen" />
< script src ="../../Scripts/jquery-1.3.2.js" type ="text/javascript" > </script>
< script src ="../../Scripts/js/min/grid.locale-en-min.js" type ="text/javascript" > </script>
< script src ="../../Scripts/jquery.jqGrid.js" type ="text/javascript" > </script>
< script type ="text/javascript" src ="../../Scripts/JS1/Common.js" > </script>
< script type ="text/javascript" >
jQuery(document).ready(function () {
jQuery("#list").jqGrid({
url: '/Movie/GridData',
datatype: 'json',
colNames: ['电影编号', '电影名称', '播放时间'],
colModel: [
{ name: 'Id', index: 'Id', width: 100, align: 'left', sorttype: "int" },
{ name: 'Movie_Name', index: 'Movie_Name', width: 100, align: 'left' },
{ name: 'Realease_Date', index: 'Realease_Date', width: 100, align: 'left'}],
pager: jQuery('#pager'),
rowNum: 10,
rowList: [1, 2, 3],
//autowidth: true,
width: '500',
sortname: 'Id',
sortorder: 'desc',
viewrecords: true,
imgpath: '../../Scripts/themes/coffee/images',
caption: '电影信息'
});
});
</script>
</asp:Content>
< asp:Content ID ="Content2" ContentPlaceHolderID ="MainContent" runat ="server" >
< table id ="list" class ="scroll" cellpadding ="0" cellspacing ="0" >
</table>
< div id ="pager" class ="scroll" style ="text-align: center;" >
</div>
< %: Html.ActionLink("跳转到主界面","Index") % >
</asp:Content>
这个页面通过向action请求数据,action返回Json格式数据,由Jqgrid显示数据。
action代码:
public JsonResult GridData(
string sidx,
string sord,
int page,
int rows)
{
DataClasses1DataContext dc = new DataClasses1DataContext();
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = dc.Movies.Count();
int totalPages = ( int)Math.Ceiling(( float)totalRecords / ( float)pageSize);
var orders = dc.Movies.OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize);
var jsonData = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = (
from order in orders
select new
{
cell = new[] { order.ID.ToString(), order.Movie_Name.ToString(), order.Realease_Date.ToString() }
}).ToArray()
};
return Json(jsonData,JsonRequestBehavior.AllowGet);
}
{
DataClasses1DataContext dc = new DataClasses1DataContext();
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = dc.Movies.Count();
int totalPages = ( int)Math.Ceiling(( float)totalRecords / ( float)pageSize);
var orders = dc.Movies.OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize);
var jsonData = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = (
from order in orders
select new
{
cell = new[] { order.ID.ToString(), order.Movie_Name.ToString(), order.Realease_Date.ToString() }
}).ToArray()
};
return Json(jsonData,JsonRequestBehavior.AllowGet);
}
返回的数据格式一定要和前台Json格式一致运行效果如下
本文转自 BruceAndLee 51CTO博客,原文链接:http://blog.51cto.com/leelei/323153,如需转载请自行联系原作者