您的位置:首页 > Web前端 > HTML

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这种表单提交方式,自动封装对象正好为此提供了方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: