xtragrid 某个值 查找_CXGRID用法(取行、列值;定位选中某行等等)

cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号

cxGrid1DBTableView1.Controller.FocusedRow 当前行

cxGrid1DBTableView1.Controller.FocusedColumn 当前列

cxGrid1DBTableView1.Controller.FocusedColumnIndex 当前列号

cxGrid1DBTableView1.Controller.EditingItem 当前编辑中的单元框

cxGrid1DBTableView1.Controller.EditingController.Edit 当前的编辑框

在编辑状态下可以这样取当前单元格的值:

if cxGrid1DBTableView1.Controller.FocusedColumn.Editing then

ShowMessage(cxGrid1DBTableView1.Controller.EditingController.Edit.EditingValue)

else

cxGrid1DBTableView1.DataController.GetValue(cxGrid1DBTableView1.DataController.FocusedRecordIndex,

cxGrid1DBTableView1.Controller.FocusedItemIndex);

非编辑状态下可以这样取得单元格内的值:

OnCellClick事件代码:

procedure   TForm1.cxGrid1DBTableView1CellClick(

Sender:   TcxCustomGridTableView;

ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;

AShift: TShiftState;   var   AHandled: Boolean);

var

v : Variant;

begin

v := ACellViewInfo.Value;

end;

取列值

i := cxGrid1DBBandedTableView1.Controller.FocusedColumn.Index;

cxGrid1DBBandedTableView1.DataController.GetValue(cxGrid1DBBandedTableView1.Controller.SelectedRows[0].RecordIndex,i);

cxGrid1DBTableView1.DataController.Values[行,列]

取得焦点

cxGrid1DBTableView1.Columns[5].FocusWithSelection;

cxGrid1DBTableView1.Columns[4].Focused:=True;

得到当前点击的单元格的值

uses   Clipbrd;

OnCellClick事件代码:

procedure   TForm1.cxGrid1DBTableView1CellClick(

Sender:   TcxCustomGridTableView;

ACellViewInfo:   TcxGridTableDataCellViewInfo;   AButton:   TMouseButton;

AShift:   TShiftState;   var   AHandled:   Boolean);

var

v   :   Variant;

begin

v   :=     ACellViewInfo.Value;//值

Clipboard.AsText     :=     vartostr(v);//保存到clipboard

end;

cxGrid的DBTableView的名称为dgtv1

1. 返回选中的行数 gdtv1.DataController.GetSelectedCount;

2. 返回选中行的索引: gdtv1.DataController.GetSelectedRowIndex(0) , 表示第一个选中行的索引

3. 返回选中行的数据;

var

I, J:Integer;

begin

for I:=0 to gdtv1.DataController.GetSelectedCount - 1 do begin

J := gdtv1.DataController.GetSelectedRowIndex(I);

ShowMessage(VarToStr(gdtv1.DataController.GetValue(J, 0))); //选择中行的第列的值

end;

end;

4. 获取cxGrid排序规则

const

OrderArray: array[soNone..soDescending] of string = ('None', 'ASC', 'DESC');

var

I: integer;

S, OrderStr: string;

begin

for I := 0 to gdtv1.SortedItemCount - 1 do begin

if S <> '' then

S := S + ', ';

OrderStr := OrderStr + gdtv1.SortedItems[I].DataBinding.DefaultCaption + ' ';

OrderStr := OrderStr + OrderArray[TcxDataSortOrder(gdtv1.SortedItems[I].SortOrder)];

S := S + OrderStr;

end;

ShowMessage('ORDER BY ' + S);

5.获取多选的值

for   i   :=   0   to   cxgrid1.SelectedRows.Count-1   do

begin

cxgrid1.DataSource.DataSet.GotoBookmark(Pointer(cxgrid1.SelectedRows.Items[i])); //定位选中的字段

end;

6.//选择行的第1列的值

for I:=0 to cxGrid1DBTableView1.DataController.GetSelectedCount - 1 do

begin

J := cxGrid1DBTableView1.DataController.GetSelectedRowIndex(I);

ShowMessage(VarToStr(cxGrid1DBTableView1.DataController.GetValue(J, 0)));

end;

7.获取所选行的值

with cxGrid1DBTableView1.Controller do

begin

for i:=0 to SelectedRowCount-1   do

begin

SelectedRows[i].Focused:=True;

ShowMessage(ADOQuery1.fieldbyname('mc').AsString);

end;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值