【IT168 技术文档】Microsoft Asp.Net MVC3 的Bate version Release有些日子了,园子里关于3所带的新功能、新组件及新方法使用的文章就出了很多,对其好坏我不做评价,但肯定的是,这些文章让我受益匪浅,感受良多。之前做过Asp.Net MVC Version 1的项目,Version1里面的很多功能都比较不完善,但开发出来的效果还是可以令人满意的,特别是在加载速度、代码修改和更新部署上有特别的优势。今天我们将就3的Bate Version所带的WebGrid进行以下两点描述:1.查询条件的绑定,2. WebGrid Sorting Ajax的实现,本文在代码编写上使用的是MVC3新提供的Razor方式(优点:因为它及大的简单了代码的书写;缺点:当前版本没有智能代码提示),可参考Asp.Net MVC3 Razor
一、本文内容
WebGrid的使用
WebGrid Sorting(排序) Ajax的实现
WebGrid Search Conditions(查询条件)的绑定
总结
代码下载 (下载)
二、MVC3 WebGrid 小试
1. WebGrid的使用
WebGrid的使用园子里已经有很多相关的文章了,也不是我们的重点,在这里我们只提供一个示例,为下面代码的描述作比较。
Action:
public ActionResult Gridview()
{
DALDataContext da = new DALDataContext();
var result =da.T_STUDENTs.ToList();
this.ViewData.Model = result;
return View();
}
{
DALDataContext da = new DALDataContext();
var result =da.T_STUDENTs.ToList();
this.ViewData.Model = result;
return View();
}
View:(如果对其中的属性不明白,请参考下面四中的内容
@using MVC3Tutorial;
@model List<T_STUDENT>
@{
View.Title = "Gridview";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@{
var grid = new WebGrid(source:Model,
fieldNamePrefix:"grid_",
defaultSort: "StudentName",
canPage:true,
canSort:true,
ajaxUpdateContainerId:"DivGrid",
pageFieldName:"paging",
sortFieldName:"sortField",
rowsPerPage:10);
<div id="DivGrid">
@grid.GetHtml(
columns:grid.Columns(
grid.Column("StudentID", "Student ID"),
grid.Column("StudentName", "Student Name"),
grid.Column("StudentCode", "Student Code"),
grid.Column("Sex", "Sex"),
grid.Column("NRICPassport", "NRIC/Passport No.")
)
)
</div>
<h2>
Page Count:
@Html.Encode(grid.PageCount)
<br/>
Total Record:
@Html.Encode(grid.TotalRowCount)
</h2>
@Html.Encode(grid.FieldNamePrefix)38 }
@model List<T_STUDENT>
@{
View.Title = "Gridview";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@{
var grid = new WebGrid(source:Model,
fieldNamePrefix:"grid_",
defaultSort: "StudentName",
canPage:true,
canSort:true,
ajaxUpdateContainerId:"DivGrid",
pageFieldName:"paging",
sortFieldName:"sortField",
rowsPerPage:10);
<div id="DivGrid">
@grid.GetHtml(
columns:grid.Columns(
grid.Column("StudentID", "Student ID"),
grid.Column("StudentName", "Student Name"),
grid.Column("StudentCode", "Student Code"),
grid.Column("Sex", "Sex"),
grid.Column("NRICPassport", "NRIC/Passport No.")
)
)
</div>
<h2>
Page Count:
@Html.Encode(grid.PageCount)
<br/>
Total Record:
@Html.Encode(grid.TotalRowCount)
</h2>
@Html.Encode(grid.FieldNamePrefix)38 }
上面我们就实现了对WebGrid的使用,得到结果如下: