使用德尔福 XE2。
我正在编写一个使用 cxGrids 并链接到查询/数据源的软件包。
单击按钮,如何刷新查询以确保 cxGrids 中的记录是最新的。
此外,如果在 cxGrid 上突出显示一条记录,它必须记住该记录并且不会重置回网格的顶部。
使用德尔福 XE2。
我正在编写一个使用 cxGrids 并链接到查询/数据源的软件包。
单击按钮,如何刷新查询以确保 cxGrids 中的记录是最新的。
此外,如果在 cxGrid 上突出显示一条记录,它必须记住该记录并且不会重置回网格的顶部。
关闭并打开dataset
后面的cxgrid
以确保您拥有最新数据。
dataset.close;
dataset.open;
如果您需要记住当前记录并将光标放回其上 - 使用如下链接所示的书签。
如果您不想使用书签,可以使用 dataset.locate 方法。存储记录的主键,刷新后使用 dataset.locate(dataset.fieldbyname('PK').AsDataType) 带你回到那条记录。
使用 locate 方法可能是一种更易读/更优雅的工作方式。
对于 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;
cxGridTableView.Navigator
有一个刷新按钮,可以做你想做的事。
如果您想使用自己的按钮刷新,可以调用cxGridTableView.DataController.RefreshExternalData