- 浏览: 1028215 次
- 性别:
- 来自: 天津
-
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
在做ASP.NET页面开发时,经常要用到dataset(或者DataTable),绑定到DataGrid或GridView上要进行重新排序,排序规则按照数组fids元素的顺序进行。本文将介绍如何在排序事件用DataView及DataTable实现排序功能.
一般人的做法是用DataView排序,关键代码如下:
DataView dv = dt.DefaultView; dv.Sort = "dis,发布日期 desc";
然后把dv绑定到DataGird输出。 不过问题又来了,如果我们需要分页功能,在翻页时,我们需要ViewState等控件来保存状态啊.那么我们还是需要用到DataTable或DataSet, DataView本身不能被序列化,而DataView中的Table属性是未经排序的,所以它在这里不起作用.
于是有个菜鸟级土解决方法如下(只使用了简单的循环):
private DataTable SortTable(DataTable dt,string[] pids) { DataTable dt0 = dt.Clone(); //复制原表结构 for(int i=0;i<pids.Length;i++) { if(pids[i] != string.Empty) { DataRow[] drs = dt.Select("pos_id=" + pids[i]); if(drs.Length > 0) { foreach(DataRow dr in drs) { dt0.ImportRow(dr); //导入行 } } } } return dt0; }
说明:就是对排序的数组循环,在datatable中找对应的行,然后复制到新表中。
该方法的效率还是可以的,不过如果交集次数大于20,000,000的时候,就会有效率问题.
其实啊,新近版的.NET类库里的DataRow[]集合对象中已经有个CopyToDataTable方法可以解决DataTable排序问题,在控件的排序事件中实现如下代码:
string currentSortColumn = this.SortColumn;//封闭ViewState变量的属性 this.SortColumn = e.SortExpression; if (currentSortColumn == this.SortColumn) this.SortAscending = !this.SortAscending;//封闭ViewState变量的属性 else this.SortAscending = false; DataTable dt = (DataTable)ViewState["DataSource"]; DataRow[] filter = dt.Select("",this.SortColumn + " " + (this.SortAscending? "ASC" : "DESC")); DataTable newTable = filter.CopyToDataTable(); ViewState["DataSource"] = newTable; this.BindDateGrid();
但我们却不知道CopyToDataTable的效率是否足够好.
发表评论
-
DotNet 资源大全(下)
2018-07-12 10:18 597HTML 和 CSS(HTML and CSS) ... -
DotNet 资源大全(上)
2018-07-12 10:17 753API 框架 NancyF ... -
asp.net mvc处理css和js版本问题
2018-05-24 16:40 1429当服务的修改了js和css内容后,发布到II ... -
分布式系统调用链监控
2018-02-22 14:36 869分布式系统调用链监 ... -
IIS 优化
2017-06-28 21:57 1703通过对IIS7的配置进行优化,调整IIS7应用池的队列长度, ... -
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题
2017-06-28 21:39 2094读在最前面: 1、本文以IIS8,Windows Se ... -
使用C# 和Consul进行分布式系统协调
2017-05-11 10:41 1321随着大数据时代的到来,分布式是解决大数据问题的一个主要手段, ... -
查看IIS上面的每个网站分别用了多少内存
2017-05-05 12:57 889IS服务器上面运行了多个网站,想查看每个网站具体使用了系统多 ... -
Asp.net WebApi版本控制
2017-03-06 10:34 841关web api的版本控制网上有很多,如Web API 版本 ... -
.Net下RabbitMQ的使用(9) -- 在WCF下使用RabbitMQ
2016-12-19 10:42 1026RabbitMQ .net客户端通过自定义的Binding ... -
.Net下RabbitMQ的使用(8) -- 远程过程调用RPC
2016-12-19 10:42 1073RPC是在计算中是一种 ... -
.Net下RabbitMQ的使用(7) -- 消息的传输控制
2016-12-19 10:41 984前文中也多次提到消息传输的一些概念,这一篇比较全面的介绍一 ... -
.Net下RabbitMQ的使用(6) -- 持久化
2016-12-19 10:41 770消息的持久化是消息 ... -
.Net下RabbitMQ的使用(5) -- 路由机制
2016-12-19 10:41 543理清路由机制是了解RabbitMQ来龙去脉的关键。在前面的 ... -
.Net下RabbitMQ的使用(4) -- 订阅和发布
2016-12-16 10:26 1157消息的订阅和发布是使 ... -
.Net下RabbitMQ的使用(3) -- 竞争的消费者
2016-12-16 10:23 2517在上一篇文章中,演示了一个发送者和一个消费者的情况。这一篇介 ... -
.Net下RabbitMQ的使用(2) -- 发送接收消息
2016-12-16 10:20 1270在安装和配置完成Rabbit ... -
RabbitMQ消息队列(一): Detailed Introduction 详细介绍
2016-12-16 10:12 6211. 历史 RabbitMQ是 ... -
RabbitMQ 安装和监控
2016-12-16 10:14 882在Windows上安装Rabbit MQ 指南,最好的是这 ... -
Autofac创建实例的方法总结
2016-12-07 14:54 5671、InstancePerDependency 对每一个依 ...
相关推荐
`DataGrid`是.NET Framework中用于数据展示的控件,它可以绑定到各种数据源,包括DataTable和DataView。DataGrid提供了一个用户界面,让用户能够查看和编辑数据。它支持行选择、排序和编辑功能,并且可以自定义列的...
总的来说,DataView是.NET中用于数据操作的强大工具,它提供了排序、筛选、编辑和数据绑定等功能,使得在应用程序中处理和展示数据变得更加方便。理解并熟练运用DataView,可以帮助开发者更有效地管理和展示...
本说明将聚焦于C#中用于数据库操作的一些控件和概念,特别是DataTable、DataView和DataGrid。这些组件是.NET Framework中的数据绑定控件,它们在数据展示和管理中起着重要作用。 首先,我们要理解DataTable。...
在描述中提到的datalist和dataliview也是ASP.NET中用于数据展示的控件,虽然它们不像GridView那么常见,但也有其独特的用处。DataList更灵活,可以用于创建自定义布局,而DataView则是DataTable的一个视图,常用于...
了解DataSet、DataTable、DataView、DataAdapter、Command对象的使用方法,以及如何进行事务处理和参数化查询。 5. **WCF(Windows Communication Foundation)**:是.NET的面向服务架构,用于构建分布式应用程序。...
在.NET 2.0中,微软提供了一套强大的数据访问技术,包括ADO.NET、DataSet、DataView、DataTable等组件,这些组件可以帮助开发者更高效地与各种数据库进行交互。 1. ADO.NET概述: ADO.NET是.NET Framework中的核心...
43 <br>0061 树的实现 44 <br>3.2 排序 48 <br>0062 如何实现选择排序算法 48 <br>0063 如何实现冒泡排序算法 49 <br>0064 如何实现快速排序算法 50 <br>0065 如何实现插入排序算法 ...
它可以绑定多种类型的数据源,包括`DataSet`、`DataTable`、`DataView`和`IList`等。 #### 9. MVC模式 MVC(Model-View-Controller)模式是一种软件架构设计模式,用于分离应用的业务逻辑、用户界面和控制流程。在...
1. ADO.NET基础:ADO.NET是.NET Framework中用于数据库访问的核心组件,它包括DataSet、DataTable、DataAdapter、DataView和DataReader等对象。在Visual C# 2005中,开发者可以利用这些对象进行数据操作,如查询、...
`DataBinder.Eval` 是ASP.NET中用于数据绑定的一个非常重要的方法,主要在网页模板控件(如Repeater, GridView等)中使用,用于从数据源中获取并显示数据。以下是对`DataBinder.Eval`的详细总结: 一、基本使用格式...
4. **DataView**:提供了一种灵活的方式来浏览和操作 `DataTable` 中的数据,支持排序、筛选和分组等功能。 5. **XmlReader**:用于从 XML 数据流中读取数据,与 `SqlDataReader` 类似,主要用于处理 XML 格式的...
4. **09_SimpleDataBinding**: 简单数据绑定可能是指在C#中如何将控件与数据源进行基本连接,使得数据变化时控件自动更新。 5. **02_DataSourceArray**: 使用数组作为数据源,是C/C++的基础,这里可能讲解了如何用...