https://www.cnblogs.com/false/archive/2013/02/24/2924240.html

procedure TReport10Form.cxGridViewDataControllerFilterChanged(Sender: TObject);
var
  cds: TClientDataSet;
begin
  cds := cxGridView.DataController.DataSource.DataSet as TClientDataSet;
  try
    cds.Filtered := false;
    cds.Filter := cxGridView.DataController.filter.filtertext;
    cds.Filtered := True;
  except
    cds.Filter:='';
  end;
end;

2.排序同步

procedure TaxisDataSet(Column: TColumnEh; var aDataSet: TClientDataSet);
var
  IndexDataSet: ^TClientDataSet;
  IsDesc: boolean;
begin
  IndexDataSet := @aDataSet;
//  if LastColumn <> nil then     //中文长度为2
//    LastColumn.Title.Caption := Copy(LastColumn.Title.Caption, 1, Length(LastColumn.Title.Caption) - 2);

//  LastColumn := Column;
  if (IndexDataSet.IndexDefs.Count > 0) and (IndexDataSet.IndexDefs[0].Fields = Column.FieldName) then
  begin
    if IndexDataSet.IndexDefs[0].Options = [ixDescending] then
      IsDesc := false
    else
      IsDesc := true;
  end
  else
  begin
    IsDesc := false;
  end;

IndexDataSet.DisableControls();
//  self.cdsVMember.IndexFieldNames := Column.FieldName;

IndexDataSet.IndexDefs.Clear();
  with IndexDataSet.IndexDefs.AddIndexDef do
  begin
    Fields := Column.FieldName;
    if IsDesc then
    begin                             //12.8.206 lero
      Name := 'DescIndex' + 'Tmp';  //'tmp'代替 Column.FieldName 避免Name长度过长 引起错误
      Options := [ixDescending];
//      Column.Title.Caption := Column.Title.Caption + '↓';  //
    end
    else
    begin
      Name := 'Index' + 'Tmp';
//      Column.Title.Caption := Column.Title.Caption + '↑'; //
    end;
  end;
  IndexDataSet.IndexName := IndexDataSet.IndexDefs.Items[0].Name;
  IndexDataSet.EnableControls();
end;

3.动态的显示数据源数据

var Tableview:TcxGridDBTableView; //定义

......

TableView := TcxGridDBTableView(cxGrid1.CreateView(TcxGridDBTableView)); 
with TableView do 
begin 
DataController.DataSource := datasource2; // 确定数据源 
self.cxGrid1Level1.GridView:= TableView; //绑定视图 
(DataController as IcxCustomGridDataController).DeleteAllItems; //删除所有列 
(DataController as IcxCustomGridDataController).CreateAllItems(false);//创建数据源中的所有列 
end; 
for i:=0 to tableview.ColumnCount-1 do 
begin 
//判断数据视图中是否包含产品两字的列,以便加长宽度显示 
if AnsiContainsText(tableview.Columns.DataBinding.FieldName,'产品')=true then 
begin 
tableview.Columns.Width:=120 ; 
end else 
begin 
tableview.Columns.Width:=50 ; 
end; 
end;

cxGrid控件过滤排序和TClientDataSet同步的更多相关文章

  1. cxGrid控件过滤筛选后如何获更新筛选后的数据集

    cxGrid控件过滤筛选后如何获更新筛选后的数据集 (2015-06-19 12:12:08) 转载▼ 标签: delphi cxgrid筛选数据集 cxgrid过滤 分类: Delphi cxGri ...

  2. 如何访问cxGrid控件过滤后的数据集

    var I: Integer; begin Memo1.Lines.Clear; with cxGrid1DBTableView1.DataController do for I := 0 to Fi ...

  3. C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用)

    C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用) 简单代码,记录一下.一个BackgroundWorker控件  backgroundWorkerRefr ...

  4. DEV控件自定义排序实现

    一般的控件或者组件都支持按照某一列进行排序.但是,这种排序是根据数据源里的数据默认按照降序或升序排序的,同时这样的排序与字段的类型有关. 假设现在字段的类型是字符串类型 ,但是,存储的数据时数字加一些 ...

  5. 关于Asp.net事件,如何在触发子控件的事件时,同步触发父页面的事件

    对页面引用自定义控件后,通过绑定自定义事件,页面绑定子控件的事件,在子控件做了某些修改动作后,如何同步操作父页面的方法:下面我煮了个栗子,同学们可以来尝一尝试一试 a.aspx 引用 UserCont ...

  6. Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)

    我们经常要实现类似省市联动一样的功能,常见的就是二个查找控件,一个选择了省后,另一个市的查找控件就自动过滤了,只显示当前省下的市,而不是所有的市.当然这是最简单的,实际工作中还有更复杂的功能要通过过滤 ...

  7. [DataTable]控件排序事件中用DataView及DataTable排序

    控件排序事件中用DataView及DataTable排序 文章分类:.net编程 在做ASP.NET页面开发时,经常要用到dataset(或者DataTable),绑定到DataGrid或GridVi ...

  8. QRowTable表格控件(五)-重写表头排序、支持第三次单击恢复默认排序

    目录 一.原生表格 二.效果展示 三.实现方式 1.排序列定制 2.排序交互修改 四.相关文章 原文链接:QRowTable表格控件(五)-重写表头排序.支持第三次单击恢复默认排序 一.原生表格 开发 ...

  9. DataTables 控件使用和心得 (2) - 参数Options

    什么是DataTables参数(Options) 上篇我们说了,DataTables控件的加载函数dataTable()一般都有一个对象参数,这个对象参数就是整个DataTables控件的参数(Opt ...

随机推荐

  1. MyBatis Generator介绍

    MyBatis Generator介绍 MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和 ...

  2. 终于搞定Fastreport2.x PDF输出,相信其他版本也差不多

    这个版本有powerpdf可以支持,但有bug, 经过反复摸索,终于搞定. 基本可用. 主要是中英文混合在一起,如果按中文输出,会有英文宽度也是中文的宽度了,格式变化,不可 接受. 而按英文输出,又是 ...

  3. kdump 调试手段

    kdump是在系统崩溃的时候用来转储内存运行参数的一个工具和服务,打个比方,如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由kdump产生一个用于capture当前运行信息的内核,该内核 ...

  4. 如何实现HashMap的同步

    HashMap可以通过Map m = Collections.synchronizedMap(new HashMap())来达到同步的效果.具体而言,该方法会返回一个同步的Map,该Map封装了底层的 ...

  5. Netty Reator(三)Reactor 模型

    Netty Reator(三)Reactor 模型 Netty 系列目录 (https://www.cnblogs.com/binarylei/p/10117436.html) 本文介绍 DC Sch ...

  6. Two Sum II - Input array is sorted LT167

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  7. 简易非阻塞http服务器

    说明         需要理解阻塞和非阻塞的区别,特别要注意非阻塞和异步不是一个概念,这个很容易弄错.云盘里面netty的书会讲这几个方面的区别,nodejs深入浅出关于异步编程章节里面       ...

  8. Alpha 冲刺 (2/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 协助前端界面的开发 搭建测试用服务器的环境 完成 ...

  9. lower_case_table_names

    http://blog.csdn.net/jesseyoung/article/details/40617031 1 简介    在MySQL中,数据库对应数据目录中的目录.数据库中的每个表至少对应数 ...

  10. android studio友盟分享demo运行报错Gradle's dependency cache may be corrupt解决方法

    gradle-wrapper.properties里修改了gradle的版本,与之前没有报错的项目gradle版本一致.