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. Java的OOP三大特征之一——继承

    Java的OOP三大特征之一——继承 子类继承父类的特征和行为(属性和方法),使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类 ...

  2. Luogu 2059 [JLOI2013]卡牌游戏 - 概率DP

    Solution 设状态 $F[i][j] $为 还剩余 $i$ 个人时, 第 $j$ 个人 的胜率. 边界: $F[1][1] = 1$(只剩下一个人了). 这样设置状态就能使 $i-1$ 个人的答 ...

  3. 摹客首家发布Adobe XD插件

    10月19日,摹客iDoc发布了支持Adobe XD的插件,这是中国国内首款基于Adobe XD 正式API的插件. 设计师在Adobe XD 中安装并使用此插件,可以将设计稿上传到摹客iDoc,并使 ...

  4. Minimum Size Subarray Sum LT209

    Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...

  5. DB2有五种约束

    DB2有五种约束: NOT NULL 约束是这样一种规则,它防止在表的一列或多列中输入空值. 唯一约束(也称为唯一键约束)是这样一种规则,它禁止表的一列或多列中出现重复值.唯一键和主键是受支持的唯一约 ...

  6. 解决textarea 输出有空格问题

    我们在使用textarea标签输出的时候,经常会出现前后都有空格.使用trim()处理也不行. 这个原因是因为 我们在编写textarea标签对的时候使用了换行. 解决方法:就是<textare ...

  7. Python之tornado

    一.快速了解Tornado框架 1)tornado简介 Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 ...

  8. Python之异常处理和socket套接字连接7

    一.异常处理 1)异常处理的使用意义 什么是异常处理 异常是程序发生错误的信号,即程序一旦出错就会立刻产生一个异常,如果该异常没有被处理 那么异常就抛出来,程序的运行也随之终止 异常分为三部分: 异常 ...

  9. mybatis 接口绑定 和 动态SQL

    一.MyBatis 接口绑定方案及多参数传递 1.作用:实现创建一个接口后把mapper.xml由mybatis生成接口的实现类,通过调用接口对象就可以获取mapper.xml中编写的sql 2.后面 ...

  10. JavaScript基础数据类型

    一.数值 1.JavaScript不区分整型和浮点型,就只有一种数字类型 2.还有一种NaN,表示不是一个数字(Not a Number) eg: parseInt("ABC")  ...