使用Delphi XE2。
我正在编写一个使用cxGrids并链接到Querys / Datasources的软件包。
单击按钮,如何刷新查询以确保记录在cxGrids中是最新的。
此外,如果记录在cxGrid上突出显示,则必须记住该记录,并且不会重置回网格顶部。
答案 0 :(得分:2)
关闭并打开dataset
后面的cxgrid
以确保您拥有最新数据。
dataset.close;
dataset.open;
如果您需要记住当前记录并将光标重新放在上面 - 请使用下面链接中显示的书签。
如果您不想使用书签,可以使用dataset.locate方法。 存储记录的主键,刷新后,使用dataset.locate(dataset.fieldbyname('PK')。AsDataType)将您带回到该记录。
使用locate方法可能是一种更易阅读/更优雅的工作方式。
答案 1 :(得分:0)
cxGridTableView.Navigator
有一个“刷新”按钮,可以执行您想要的操作。
如果您想使用自己的按钮刷新,可以拨打cxGridTableView.DataController.RefreshExternalData
答案 2 :(得分:0)
对于devexpress的cxgrid,博彩公司是恢复选择的一个不好的解决方案,你可以使用cxStatusKeeper(它可以从devexpress支持中心下载的公共单位)
{Init the component for restore selection}
FGridStatus := TcxGridDBTableKeeper.Create(self);
FGridStatus.LoadExpanding := False;
FGridStatus.LoadSelection := True;
FGridStatus.LoadFocus := True;
FGridStatus.LoadTopRecord := False;
FGridStatus.LoadWithDetails := False;
FGridStatus.LoadFocusedView := True;
FGridStatus.LoadFocusedItem := True;
FGridStatus.View := gvTableElementi;
{save the current items}
FGridStatus.Store;
{restore the selection}
if FGridStatus.GridStored then
FGridStatus.Restore;