http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4937|回复: 2

[Asp.Net] WebGrid的方法介绍一

[复制链接]
发表于 2013-5-21 13:57:57 | 显示全部楼层 |阅读模式

WebGrid 给我们开发人员提供了很好的分页和排序功能,优点很明显。但看完下面的例子后会发现一个问题:不管获取每一页都会去取出所有的数据,假如说其中有100W条数据,在用foreach去循环的话,就会造成crash,WebGrid的方法介绍二中我会具体说明如何去更好地派生WebGrid。

WebGrid的方法签名

public WebGrid(

IEnumerable<dynamic> source, 设置数据源

IEnumerable<string> columnNames = null, 要显示的列名

string defaultSort = null, 默认排序的字段

int rowsPerPage = 10, 每页的行数

bool canPage = true, 是否允许分页

bool canSort = true, 是否允许排序

string ajaxUpdateContainerId = null,

string ajaxUpdateCallback = null,

string fieldNamePrefix = null,字段名的前缀

string pageFieldName = null,

string selectionFieldName = null,

string sortFieldName = null,

string sortDirectionFieldName = null);
代码使用如下:

  1. List<CMS5_Razor.Models.Test> list = new List<CMS5_Razor.Models.Test>();
  2.     for (int i = 0; i < 210; i++) {
  3.         list.Add(new CMS5_Razor.Models.Test() { Name = "name" + i, Order = i, Content = "content" + i });
  4.     }
  5.     var grid = new WebGrid(source: list, rowsPerPage: 5, canPage: true
  6.         , selectionFieldName: "Name"
  7.         , fieldNamePrefix: "字段名的前缀"
  8.         );
复制代码
WebGrid.GetHtml函数签名

public IHtmlString GetHtml(

string tableStyle = null,表格样式

string headerStyle = null,头部

string footerStyle = null, 底部

string rowStyle = null, 每一行的样式

string alternatingRowStyle = null, 交替行

string selectedRowStyle = null, 被选中

string caption = null,标题

bool displayHeader = true, 是否显示头部

bool fillEmptyRows = false, 是否填充空行

string emptyRowCellValue = null, 空行里每个字段显示的值

IEnumerable<WebGridColumn> columns = null, 在这里设置各列

IEnumerable<string> exclusions = null, 不显示的字段

WebGridPagerModes mode =枚举值,一般情况选择WebGridPagerModes.All

string firstText = null, 对应第一页链接显示的文字

string previousText = null, 对应上一页链接显示的文字

string nextText = null, 对应下一页链接显示的文字

string lastText = null, 对应最后一页链接显示的文字

int numericLinksCount = 5,数字选择项的数目

object htmlAttributes = null  ~beta版本源码中没查到,暂时不知道如何使用,

);

Column的方法签名

public WebGridColumn Column(string columnName = null,

string header = null,列头的名字

Func<dynamic, object> format = null,  自定义的输出,非常实用

string style = null, 样式

bool canSort = true);是否允许排序
代码如下:
  1. grid.GetHtml(
  2. columns: grid.Columns(
  3.       grid.Column("Name", "名字", style: "mynameStyle"),
  4.                  grid.Column("Content", "Content", style: "mynameStyle"),
  5.       grid.Column("Order", "顺序", format: @<b><i>@item.Order</i></b>, canSort: false)
  6.                        ), tableStyle: "grid", headerStyle: "headerStyle1", selectedRowStyle: "selectedRowStyle",
  7.                   caption: "我是标题", displayHeader: !IsPost,
  8.                   fillEmptyRows: !IsPost, emptyRowCellValue: "这行没东西",
  9.                   mode: WebGridPagerModes.All, firstText: "第一页",
  10.                   previousText: "上一页", nextText: "下一页", lastText: "最后一页",
  11.                 numericLinksCount: 15
  12. )
复制代码

效果图

效果图


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-5-21 14:01:10 | 显示全部楼层
If U have don't understand, U can leave a message, I will answer in a timely manner
发表于 2013-5-21 14:59:51 | 显示全部楼层
支持 强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 08:30

© 2014-2021

快速回复 返回顶部 返回列表