cxGrid批量修改问题(100)

  • 主题发起人 主题发起人 chadwick4562
  • 开始时间 开始时间
C

chadwick4562

Unregistered / Unconfirmed
GUEST, unregistred user!
我一个cxgrid连着一个datasource, 在多选的时候,我再批量修改值 我用 try id:=cxGrid1BandedTableView1.Controller.FocusedColumn.Index; for i:=0 to cxGrid2DBBandedTableView1.Controller.SelectedRecordCount-1 do begin if not dmMain.ADOQy.IsEmpty then begin cxGrid2DBBandedTableView1.DataController.SetValue(cxGrid2DBBandedTableView1.DataController.Controller.SelectedRecords.RecordIndex,AItem.Index,AItem.EditValue); end; end; ADOSp_Roster.EnableControls; cxGrid2DBBandedTableView1.EndUpdate; FreeAndNil(frm); except end;来批量修改值..只要我不滚动,值是改了..但只要我的焦点发生变化,全部数据都还原成修改前的数据了..
 
你把数据库里的也要更新
 
只能更新数据集,不能更新数据库,因为我用的缓存更新..
 
cxgrid中显示的数据必然有条件,用这个条件批量修改数据,那这些数据一定有规律,可在后台用存储过程修改,改后再用原条件查询一下结果是否达到目的即可。
 
我用的缓存更新..不能直接更新数据库..
 
强制更新
 
强制更新是怎样?能说的明白一点吗?
 
applyupdate~~
 
如果是三层,修改数据后要post,这时数据修改仍然在数据集,只有applyupdates才真正写到数据库所以你可以使用一切数据库操作,不必在界面改显示值,如果有问题,回滚不提交就是,不影响数据库
 
你這個改的沒有用,Grid修改的只是Grid的緩存而已,沒有改數據DataSet。你應該利用定位到 DataSet 從 DataSet修改, Grid中自然就會顯示修改內容。單只改Grid ,沒有用的。
 
我也认为要直接修改DataSet,Grid自然会变,但数据库不变,applyupdates后数据库才更新
 
后退
顶部