代码改变世界

MVC进阶学习--HtmlHelper之GridView控件拓展(三)

2009-10-15 17:49  贺臣  阅读(2309)  评论(0编辑  收藏  举报
1.扩展核心代码
Code
(1)
public static string GridView<T>(this HtmlHelper helper, PageList<T> items, string[] columns, GridViewOption option)
this HtmlHelper helper  这个是.net3.0 中的新特性,我们扩展HtmlHelper这个类,使之具有GridView<T>()这个泛型方法
PageList<T> items   则是指定的数据源(上篇提到过的自定义的数据集合),
string[] columns      这个是指定GridView 显示哪几列,和GridViewOption中的header数组有区别,这个是针对数据库字段或者某个实体的属性,而GridViewOption中的是表格的头部不封显示的字样
(2)

if (columns == null)
            {
                columns = typeof(T).GetProperties().Select(p => p.Name).ToArray<string>();
            }

            if (option.Headers == null)
            {
                option.Headers = columns;
            }
            else
            {
                if (option.Headers.Length != columns.Length)
                {
                    option.Headers = columns;
                }
            }

这个定义了表格标题的匹配规则,如果columns 的值为null,则默认显示该对象的所有属性,这里区分columns和heander数组,同时也匹配了二者之间的关系。如果这两个数组的长度相等,则表头显示自定义的字样,否则都以columns中的字样为主
(3)

             HtmlTextWriter writer = new HtmlTextWriter(new StringWriter());
            writer.RenderBeginTag(HtmlTextWriterTag.Table);

            //标题
            RenderHeander<T>(helper, writer, columns, option);

            //添加数据行
            RenderRow<T>(helper, writer, items, columns, option);

            //添加分页
            RenderPageList<T>(helper, writer, items, columns, option);

            return writer.InnerWriter.ToString(); ;

           这段就是调用下面的方法,设置数据


更多方法介绍看下篇


作者:情缘
出处:http://www.cnblogs.com/qingyuan/
关于作者:从事仓库,生产软件方面的开发,在项目管理以及企业经营方面寻求发展之路
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
联系方式: 个人QQ  821865130 ; 仓储技术QQ群 88718955,142050808 ;
吉特仓储管理系统 开源地址: https://github.com/hechenqingyuan/gitwms