tosatoandrea said:But if I add row.Update() pencil disapper, rows are committed, but there is scroll up !!!
This issue is likely to take more in-depth research than I am able to provide over the forums. I've passed this information over to Developer Support so that we can continue to assist you on this issue through a support request. The first thing that DS will likely do is to put together a sample project to attempt to reproduce the behavior you've described.
Thanks for your patience.
Hi, thanks for reply!
Modify grid cells directly : (ex. row.Cells["descrizione"] = "descrizione " + r.Next().ToString() ) NO SCROLL, but pencil appear in all rows modified.
But if I add row.Update() pencil disapper, rows are committed, but there is scroll up !!!
The best thing for me would be directly edit the datasource to occur without the scroll up.
I think it strange that there is no way to avoid the scrol up the grid if the modify occur in datasource (and in fields that not are primary
key of relation between datatables).
I tried also to use BeginUpdate () and SuspendRowSynchronization () without success.
tosatoandrea said:your code work fine
tosatoandrea said:but the in the row selector appear the little pencil, how to remove it if the row isn't the active row
UltraGridRow row = ultraGrid1.ActiveRow;while (row.ParentRow != null){ row = row.ParentRow; //DataRow dr = ((DataRowView)row.ListObject).Row; //if (dr != null) // dr["descrizione"] = "descrizione " + r.Next().ToString(); row.Cells["descrizione"] = "descrizione " + r.Next().ToString(); row.Update(); }}
The pencil icon means that there are changes made to the grid row that haven't yet been committed to the corresponding data row. By calling the grid row's Update() method, you're telling the row to commit those changes to the data row. This should remove the pencil icon, or likely prevent it from appearing in the first place.
Hi,
your code work fine, but the in the row selector appear the little pencil, how to remove it if the row isn't the active row ?
I have many code that work with datatable, and not with row cells values. My grid is very complex, it consist of 5 bands and calculated values in cascade from the most deeph band to to the first band, and vice versa. There is a way to bypass wath you say :
"The modification of the parent row may be causing the child rows to be discarded and recreated, possibly because of the way the BindingManager sends notifications to the grid. The grid would scroll up to the parent row as a side-effect"
I need only disable the scroll-effect.
Thank you very much.
tosatoandrea said:When user modify cell, and click enter, the application modify some others fields of same and parent row on datasource (dataset).
I have one additional idea: instead of modifying the DataRow directly, modify the column in the corresponding grid row:
UltraGridRow row = ultraGrid1.ActiveRow;while (row.ParentRow != null){ row = row.ParentRow; //DataRow dr = ((DataRowView)row.ListObject).Row; //if (dr != null) // dr["descrizione"] = "descrizione " + r.Next().ToString(); row.Cells["descrizione"] = "descrizione " + r.Next().ToString(); }}
Test this change and let me know if it helps.