cxGrid提供了 cxGridDBTableView.DataController.DeleteFocused、DeleteSelection、DeleteRecord(i) 这几个删行的方法,这些方法都将数据库里相对应的记录给删除了。我需要的是只对cxGrid的某行删除,而不将数据库里的记录做删除。

解决方案 »

  1.   

    我都是挂一个clientdataset,cxgrid操作的都是dataset里的记录,同时记录下来哪条记录改过,最后统一用sql提交到服务器上。删除是dataset里做个标记,正式确定后再删除。
      

  2.   

    使用非db的grid
    或者其他不直接连接数据库的方法,这个自己选择一个吧甚至可以再数据库里做手脚,增加一个标识字段,删除时,只是置该标记为True,cxgrid是可以做筛选的,条件可以设置为那个标识字段为False的记录
      

  3.   

    假设你cxgrid绑定的数据源是adodataset1,则设置adodataset1.LockType:=ltBatchOptimistic,
    这样设置了缓存方式,那么
       确认提交:adodataset1.updateBatch(arall);
       放弃提交:adodataset1.cancelBatch(arall);
      

  4.   

    CXGRID已经好久不用了,CXGRID是有数据库感知组件的表格控件,和数据库紧密结合这点不太好,功能是很强大,但是对海量数据的处理上太痛苦了,经常性崩溃,我现在在用tms控件包里的DAVstringGrid,感觉挺好,关键是和数据库没有联系。
      

  5.   

    设置,符合条件的 Row  Height :=0;