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

网站优化做网站优化代理网址在线

网站优化做网站优化,代理网址在线,wordpress海外主题,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/551083/

相关文章:

  • 网站联系方式设计健身器材网站源码
  • 个人网站如何做流量福建省住房和城乡建设厅网站首页
  • 企业网站制作流程图网站建设公司seo关键词
  • 网站建设之家wordpress有自定义时间发布文章
  • 黄页网络的推广网站有哪些网站建设制作设计推广
  • dede网站文章同步偷wordpress模板
  • 如何查看网站开发的语言成都微信小程序定制开发
  • 烟台市芝罘区住房和建设局网站鞍山市建设工程安全生产监督管理站网站
  • 网站如何分页天津市网站建设
  • 信阳网站建设信阳网络营销公司哪家服务好
  • 网站建设先学什么自己做的网站如何推广
  • 网站建设策划书是有谁编写的上海外贸网站推广
  • 网站设计论文经济可行性分析南京市建设工程档案馆网站
  • 万盛网站建设公司青岛展台搭建
  • 网站开发公司php工资深圳品牌火锅店加盟
  • 重庆网站设计更新wordpress连接直达
  • 免费起名网最好的网站广告设计方案
  • 哪些公司做网站网站建设学校培训班
  • 绵阳专门做网站的公司wordpress导航兰
  • 太原网站建设价格套餐茶叶企业网站开发源码
  • 岳阳做网站费用网站建设进展情况汇报
  • 全网营销型网站建设如何进行网站建设和推广
  • 湘潭学校网站建设 磐石网络wordpress站内链接跳转
  • 杭州网络推广网络优化seo综合查询中的具体内容有哪些
  • 网站开发 模板 cdedecms网站搬家
  • 玉树电子商务网站建设哪家好沁阳企业自助建站
  • CQ网站建设国外网站 dns
  • 软件或网站是怎么做的咨询型网站
  • 开发小网站一般多少钱一个站长seo工具
  • 新泰市建设局网站wordpress远程后台设置