I have an UltraTree in grid mode configured for multiple selection. The datasource is a subclass of UltraDataSource that overrides OnRowBeginEdit and OnRowEndEdit to support a database on the backend.
After clicking on a row and dragging to extend, I want to a) examine the selected nodes, b) programmatically change cell values, and c) persist the changes to the database.
Steps "a" and "b" working, but not "c". Unless I click to select another row, EndEdit does not get called for any row. When I do click another row, EndEdit is called for all but the first selected row of the original multiselection. I know that BeginEdit has been called for the first selected row. I tried testing a node for IsEditing and calling EndEdit and BeginEdit to flush the change, but it had no effect.
I do not want to have to change the selection for the database update to occur or require any user interaction, and I want all the changed rows to be udpated. I could do it directly, but I'd like to get the databinding to do the work for me. Is that possible?
That did it. Thanks
I'm not certain that I followed this but writing values back to the database is not a function of the data source, it is a function of the data adapter. Having said that, UltraTreeNode exposes an 'Update' method, which basically completes an edit, calling the IEditableObject.EdnEdit when applicable. It is possible that you can use this method to solve your problem.