当前位置: 首页 > news >正文

免费商务网绍兴网站关键词优化

免费商务网,绍兴网站关键词优化,电子技术网,wordpress简洁博客模板DBGridEh 可以点列抬头使得记录按该列排序 不需要写代码,只需要设置好,它就能排序。 网上的文章一般写了如何设置。但一般都少说了一条。 先说如何设置: 1. OptionsEh.AutoSortMarking 设置为 True,如果是设计期属性面板&…

DBGridEh 可以点列抬头使得记录按该列排序

不需要写代码,只需要设置好,它就能排序。

网上的文章一般写了如何设置。但一般都少说了一条。

先说如何设置:

1. OptionsEh.AutoSortMarking 设置为 True,如果是设计期属性面板,就是打勾;

2. 如果要按多个字段排序,则:OptionsEh.dghMultiSortMarking 打勾;

3. SortLocal 打勾;

4. 如果是设计期,为 DBGridEh 创建固定字段(Columns),选中要排序的字段,在其属性面板找到:

4.1. Title.TitelButton 打勾;

4.2. Title.SortMarker 可以选择默认值,也就是没排序箭头。但当执行完排序,这个箭头会显示出来。

5. 重点来了:如果这个 DBGridEh 对应的 DataSet 是 ClientDataSet,就需要在它所在的单元 uses EhlibCDS

为啥要 uses EhlibCDS

请参考以下这段话:

EhLib已经实现了能在TQuery, TADOQuery 和TClientDataSet对象中排序数据的类。简单地通过 uses 子句添加 Ehlib...(EhlibBDE,EhlibADO,EhlibCDS)的单元之一到你的工程的任意单元中,与它们相连的数据网格将自动对该数据集进行排序。 EhLibBDE, EhLibADO, EhLibCDS 通过在单元数据集中调用 RegisterDatasetFeaturesEh 过程来实现初始化。
对于其它数据集类型,你必须编写、并注册可以实现该数据集排序的新对象。书写过程 T[你的数据集]DatasetFeaturesEh.ApplySorting ,你可以存取那些使用了 SortMarkedColumns 属性的列以实现直接排序。你可以查看 DbUtilsEh 单元中的示例以明白如何编写T[你的数据集]DatasetFeaturesEh 类及查看 EhLibBDE 单元以明白如何注册 T[你的数据集]DatasetFeaturesEh 类。

大概意思:DBGridEh 实际上是依靠它对应的 DataSet 去排序的。TDataSet 本身没有实现排序功能,但它的子类,比如 TClientDataSet 实现了排序功能。因此,如果要它自动排序,需要引用它提供的对应该 DataSet 的排序单元。如果你使用的 DataSet 不是它支持的,就要自己去实现,并注册。

概念

Delphi 的数据敏感控件,比如 DBGrid 或者 DBGridEh,通过 DataSource 指向一个 DataSet;数据敏感控件本身仅仅是用于数据的显示,它并不拥有数据,也不管理数据。所有对数据的操作,都是在操作 DataSet。

因此,表面上看,点击的 DBGridEh 的字段抬头后,里面的数据排序了。但实际上,是它背后的 DataSet 里面的数据排序了。

进一步的测试

有人想要点击 DBGridEh 的字段抬头排序以后,还想要在排序后可以取消排序,恢复 DBGridEh 里面的记录的原来的排列顺序。

基于以上排序的原理,可以知道,排序实际上是对 DataSet 而言的。因此,使用以下代码测试:

procedure TForm1.Button3Click(Sender: TObject);
beginShowMessage(ClientDataSet1.IndexFieldNames);ShowMessage(ClientDataSet1.IndexName);
end;

程序运行后,用户点击 DBGridEh 的字段抬头排序之前,点击 Button3 执行上述代码,弹出来的对话框是空的。

用户点击 DBGridEh1 的字段抬头排序之后,运行上述代码,可以看到:

1. ClientDataSet1.IndexFieldNames 仍然是空的;

2. ClientDataSet1.IndexName 为:SortIndexEh

说明当用户点击 DBGridEh 的字段抬头,DBGridEh 自动为记录排序时,实际上它是为它对应的 ClientDataSet1 增加了一个索引!

因此,取消排序就简单了:
procedure TForm1.Button4Click(Sender: TObject);
beginClientDataSet1.IndexName := '';
end;

执行完上述代码,可以看到,DBGridEh1 里面的记录顺序确实恢复到了排序之前的顺序。

进一步讨论

其实,有必要取消排序,恢复到原始混乱的排序吗?

对用户来说,其实他需要的是各种排序。比如先按照名字排序,看完了,可能想按照性别排序来看。看完了,可能想按照年龄排序来看。因此,只需要对各个字段设置为可以点抬头排序就好了。实在想不出来有什么需求,是要看原始混乱排序的顺序的。

http://www.yayakq.cn/news/52214/

相关文章:

  • 华泰保险公司官方网站基于iview的网站开发模板
  • 大连哪里有手机自适应网站建设云服务器网站搭建教程
  • 微网站开发服务架设网站 软件
  • 食品销售公司网站制作最好的微网站建设公司推荐
  • 三星官网网站网页界面设计中一般使用的分辨率的显示密度是多少dpi
  • 广州网站 服务器建设wordpress网站收录插件
  • 网站推广优化排名seo怎么更改网站里的tdk
  • 山东枣庄滕州网站建设公司网站的建设怎么做
  • 用wex5可以做网站吗做旅游网站毕业设计
  • flash网站制作下载有需要网站建设的没
  • 做时时的网站小学四年级摘抄新闻
  • 阿里云怎么创建网站网站手机版怎么做的
  • 动漫网站logo定制网络设备的后期维护缺点
  • 成都做网站wordpress 白屏
  • 企业网站建设的平台怎么用wordpress做企业网站
  • 建站技术服务四川省建设人才网官网
  • 网站 数据库选择网站建设佰金手指科杰十一
  • 制作彩票网站需要多少钱那些网站权重高
  • 小说网站排名前十wordpress右下角设置
  • 郑州集团网站建设温州高端企业网站建设
  • 视频网站开发架构做网站卖专业卖文玩
  • 网站建设的费用入账又名林州站长网
  • d网站建设的目的做网站运营需要具备什么能力
  • 家装设计费用多少钱一平方重庆seo网站排名
  • 怎么发布自己做的网站电子商务网站建设规划开题报告
  • 无远低代码开发平台长春网站排名优化费用
  • 四子王旗建设局网站凡科与wordpress
  • 章丘哪里做网站中国网站有哪些公司
  • 游戏网站平台怎么做农业推广作业
  • 抖音创作者服务平台关键词优化易下拉效率