我正在使用Devexpress TcxGrid,并试图获取选定的单元格文本。我的TcxGrid连接到某种数据源 - 我认为它是DataControler。如何从TcxGrid中获取选定的单元格文本?
我的目标是从整个行中的单元格中获取文本,并将其置于用逗号分隔的字符串中。
我正在使用Devexpress TcxGrid,并试图获取选定的单元格文本。我的TcxGrid连接到某种数据源 - 我认为它是DataControler。如何从TcxGrid中获取选定的单元格文本?
我的目标是从整个行中的单元格中获取文本,并将其置于用逗号分隔的字符串中。
如果你想多选,并从TcxGridDbTableView值: 在我的结果我没有行之间的分离。
function GetSelectedValuesFrmGrid: String;
var
intSelectLoop,
intRowLoop: Integer;
oTableView: TcxGridDbTableView;
strValue: Variant;
oList: TStringList;
begin
Result:= '';
// Kind Of TableView
if <TcxGrid>.ActiveView is TcxGridDbTableView then
begin
oTableView:= <TcxGrid>.ActiveView as TcxGridDbTableView;
oList:= TStringList.Create();
try
for intSelectLoop:= 0 to oTableView.Controller.SelectedRowCount-1 do
begin
for intRowLoop:= 0 to oTableView.Controller.SelectedRows[intSelectLoop].ValueCount-1 do
begin
strValue:= oTableView.Controller.SelectedRows[intSelectLoop].Values[intRowLoop];
// Value can be Null
if VarIsNull(strValue) then
begin
strValue:= '';
end;
oList.Add(strValue);
end;
end;
Result:= oList.CommaText;
finally
oList.Free;
end;
end;
end;
您需要选定行中所有单元格的文本?
for I := 0 to cxGridDBTableView.Controller.SelectedRowCount -1 do
for J := 0 to cxGridDBTableView.Controller.SelectedRows[I].ValueCount -1 do
SelectedRowStr := SelectedRowStr + VarToStr(cxGrid1DBTableView1.Controller.SelectedRows[I].Values[J]) + ',';
SelectedRowStr := Copy(SelectedRowStr,1,length(SelectedRowStr)-1);
该网格将有一个DataControler后裔。您可以循环访问DataController中的项目,并根据您的网格配置方式,DataController中的项目可以与网格中显示的各个“列”相对应。也就是说DataController中的项目保留在其中
此代码将让您循环访问网格中的每个列,并根据DataController值构建字符串。
var
i: Integer;
DC: TcxCustomDataController;
s: string;
begin
s := '';
DC := <yourgrid>.DataController;
for i := 0 to <yourgrid>.ColumnCount -1 do begin
s := s + vartostr(DC.Values[DC.FocusedRecordIndex, <yourgrid>.Columns[i].Index]) + ',';
end;
if Length(s) > 0 then
s := Copy(s,1,Length(s)-1);
end;
cxGrid也可能在活动选择不是真正的数据行的情况下结束。任何时候我都会用这个价值。 AFocusedRecord:= SalesGridView.Controller.FocusedRecord; if(AFocusedRecord <> nil)和 (AFocusedRecord.IsData = true)然后在这里使用记录。 – 2012-03-26 14:23:49
好点。这个网格有很多功能,还有很多细节。 – 2012-03-26 15:25:55
如果你有网格源,你可能想看看这个函数过程TcxCustomGridTableView.CopyToClipboard(ACopyAll:Boolean)。结果在剪贴板上,但输出结果就是您要查找的内容。 – 2012-03-26 15:35:08