MVC进阶学习--HtmlHelper之GridView控件拓展(四)
2009-10-19 15:27
411 查看
1.输出表头
Code
1 /// <summary>
2 /// 添加分页
3 /// </summary>
4 /// <param name="helper"></param>
5 /// <param name="writer"></param>
6 /// <param name="option"></param>
7 /// <returns></returns>
8 public static string RenderPageList<T>(this HtmlHelper helper, HtmlTextWriter writer, PageList<T> items, string[] columns, GridViewOption option)
9 {
10 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
11 if (option.IsEidt || option.IsDelete)
12 {
13 writer.AddAttribute("colspan", (option.Headers.Length + 1).ToString());
14 }
15 else
16 {
17 writer.AddAttribute("colspan", (option.Headers.Length).ToString());
18 }
19 writer.AddAttribute("align", "center");
20 writer.RenderBeginTag(HtmlTextWriterTag.Td);
21 writer.Write(helper.ActionLink("首页", items.Action, new { controller = items.Controller, pageIndex = 1 }) + " ");
22 writer.Write(helper.ActionLink("上一页", items.Action, new { controller = items.Controller, pageIndex = items.Page.PageIndex - 1 }) + " ");
23 writer.Write(items.Page.PageIndex + "/" + items.Page.PageCount + "页 ");
24 writer.Write(helper.ActionLink("下一页", items.Action, new { controller = items.Controller, pageIndex = items.Page.PageIndex + 1 }) + " ");
25 writer.Write(helper.ActionLink("尾页", items.Action, new { controller = items.Controller, pageIndex = items.Page.PageCount }) + " ");
26 writer.RenderEndTag();
27 writer.RenderEndTag();
28 writer.RenderEndTag();
29
30 //构建隐藏表单
31 writer.AddStyleAttribute("display","none");
32 writer.RenderBeginTag(HtmlTextWriterTag.Div);
33 writer.AddAttribute("action","");
34 writer.AddAttribute("method","post");
35 writer.RenderBeginTag(HtmlTextWriterTag.Form);
36 foreach (string column in columns)
37 {
38 writer.AddAttribute("type","hidden");
39 writer.AddAttribute("id", column);
40 writer.AddAttribute("name", column);
41 writer.AddAttribute("value", "");
42 writer.RenderBeginTag(HtmlTextWriterTag.Input);
43 writer.RenderEndTag();
44 }
45 writer.RenderEndTag();
46 writer.RenderEndTag();
47
48 return writer.InnerWriter.ToString();
49 }
这里的分页显示,其实同上面没有什么不同,都是将标签输出,然后加上不停变化的变量参数,如同编辑和删除按钮一样,要指定处理这个请求的Controller 和 action。同样的道理,分页中的分页参数也是如此。但是这里得注意一点,在最后面输出了一个表单,其实这个表单就是为了辅助编辑这个按钮的,当我编辑的时候,后来要将数据提交到后台做修改就是利用这个表单,这个表单都是用表单隐藏域来说实现数据的提交同时结合了Jquery中的相关知识内容。在域WevForm中的GridView比较起来这种方式都是在客户端处理的,编辑不需要从新走服务器,个人感觉这是比较好的一种方式,只有真正的修改了才会提交到服务器修改。隐藏域的个数也是由显示字段的个数决定的,从某种程度上来说,MVC这种表单提交方式,自动封装对象正好为此提供了方便。
Code
1 /// <summary>
2 /// 添加分页
3 /// </summary>
4 /// <param name="helper"></param>
5 /// <param name="writer"></param>
6 /// <param name="option"></param>
7 /// <returns></returns>
8 public static string RenderPageList<T>(this HtmlHelper helper, HtmlTextWriter writer, PageList<T> items, string[] columns, GridViewOption option)
9 {
10 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
11 if (option.IsEidt || option.IsDelete)
12 {
13 writer.AddAttribute("colspan", (option.Headers.Length + 1).ToString());
14 }
15 else
16 {
17 writer.AddAttribute("colspan", (option.Headers.Length).ToString());
18 }
19 writer.AddAttribute("align", "center");
20 writer.RenderBeginTag(HtmlTextWriterTag.Td);
21 writer.Write(helper.ActionLink("首页", items.Action, new { controller = items.Controller, pageIndex = 1 }) + " ");
22 writer.Write(helper.ActionLink("上一页", items.Action, new { controller = items.Controller, pageIndex = items.Page.PageIndex - 1 }) + " ");
23 writer.Write(items.Page.PageIndex + "/" + items.Page.PageCount + "页 ");
24 writer.Write(helper.ActionLink("下一页", items.Action, new { controller = items.Controller, pageIndex = items.Page.PageIndex + 1 }) + " ");
25 writer.Write(helper.ActionLink("尾页", items.Action, new { controller = items.Controller, pageIndex = items.Page.PageCount }) + " ");
26 writer.RenderEndTag();
27 writer.RenderEndTag();
28 writer.RenderEndTag();
29
30 //构建隐藏表单
31 writer.AddStyleAttribute("display","none");
32 writer.RenderBeginTag(HtmlTextWriterTag.Div);
33 writer.AddAttribute("action","");
34 writer.AddAttribute("method","post");
35 writer.RenderBeginTag(HtmlTextWriterTag.Form);
36 foreach (string column in columns)
37 {
38 writer.AddAttribute("type","hidden");
39 writer.AddAttribute("id", column);
40 writer.AddAttribute("name", column);
41 writer.AddAttribute("value", "");
42 writer.RenderBeginTag(HtmlTextWriterTag.Input);
43 writer.RenderEndTag();
44 }
45 writer.RenderEndTag();
46 writer.RenderEndTag();
47
48 return writer.InnerWriter.ToString();
49 }
这里的分页显示,其实同上面没有什么不同,都是将标签输出,然后加上不停变化的变量参数,如同编辑和删除按钮一样,要指定处理这个请求的Controller 和 action。同样的道理,分页中的分页参数也是如此。但是这里得注意一点,在最后面输出了一个表单,其实这个表单就是为了辅助编辑这个按钮的,当我编辑的时候,后来要将数据提交到后台做修改就是利用这个表单,这个表单都是用表单隐藏域来说实现数据的提交同时结合了Jquery中的相关知识内容。在域WevForm中的GridView比较起来这种方式都是在客户端处理的,编辑不需要从新走服务器,个人感觉这是比较好的一种方式,只有真正的修改了才会提交到服务器修改。隐藏域的个数也是由显示字段的个数决定的,从某种程度上来说,MVC这种表单提交方式,自动封装对象正好为此提供了方便。
相关文章推荐
- MVC进阶学习--HtmlHelper之GridView控件拓展(二)
- MVC进阶学习--HtmlHelper之GridView控件拓展(三)
- MVC进阶学习--HtmlHelper之GridView控件拓展(五)
- MVC进阶学习--HtmlHelper之GridView控件拓展(一)
- MVC进阶学习--HtmlHelper控件解析(二)
- MVC进阶学习--HtmlHelper控件解析(四)
- MVC进阶学习--HtmlHelper控件解析(五)
- MVC进阶学习--HtmlHelper控件解析(一)
- MVC进阶学习--HtmlHelper控件解析(三)
- MVC进阶学习--HtmlHelper控件解析(一)
- ASP.Net MVC开发基础学习笔记(2):HtmlHelper与扩展方法
- MVC学习系列4--@helper辅助方法和用户自定义HTML方法
- ASP.NET MVC学习之View动态内容和htmlhelper
- ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法
- .net Mvc HTML Helper控件中的htmlAttributes
- 自己动手写控件(模仿mvc htmlhelper的类)
- MVC学习笔记----@Helper标签(HelperMethod方法)和HtmlExtesion扩展
- ASP.NET MVC中HtmlHelper控件7个大类中各个控件使用详解
- 新版asp.net mvc 分页控件:HtmlHelper扩展
- 在 ASP.NET MVC 中创建自定义 HtmlHelper 控件