The grid is refreshed any time the "AcceptChanges" method is called on the table to which the grid is bound. This means that any time the grid has been modified (e.g. moving a row to another position, or sorting), then the grid is completely reset as if the grid was treated like ugrid.datasource=nothing and then ugrid.datasource = DT
I have been working with the Infragistics support folks, and while they are very nice, the feedback to this issue is that the ultra grid is "designed" to reset *anytime* there is a rowstate change in the datasource. This seems pretty stupid and I believe older versions of the grid control did not have this problem (I am still trying to find an older system to test, but I have older code that would not have been released to our customer base if it had always acted like this). So basically, what I have been told is that by simply changing the row state of a datasource, then be prepared to redo all of your grid settings as if you were first initializing the grid.
Other 3rd party controls do not have such design issues. And since this is actually a follow-up to #369642, it begs the question, why wouldnt the forum engineers have just suggested to have the datasource change rowstate and that would reset everything in any ordered list?
UGGGH.... I am posting this to publicly verify what I have been told and if this is true, then to let other developers be aware of the bound grid problems. So Infragistics engineers... what is your public decision? Is your grid so badly designed that changes in datasource row states reset your grid or is there a bug that needs to be fixed?
I look forward to the feedback!
Eric,
This issue has been submitted to our development team with reference number 125383. You will receive more information on the status of this issue through support case CAS-102936-L2F4J2.
We have the sample application that you provided with CAS-102936-L2F4J1. We will use that to reproduce the issue.
I have provided a previous example code in my direct contact with Infragistics technical support. I do not see where I can upload a file through the forums here, but I would be happy to provide such a sample project.
The strange behavior is further confused when rows are inserted and deleted, the reset is not called. Only when data is modified by the grid and the datasource is called to AcceptChanges does this "reset" get called. Again, let me know how I can send you a sample project that shows this behavior. Feedback on this issue is of utmost importance for our next version release, so I need to know if I have to re-write a bunch of code or rip out functionality because it is not behaving as expected.
Many Thanks for the responses! :)
The grid will lose certain layout or row level settings when it receives a Reset notification from the data source. Reset tells bound controls that some fundamental structural change has occurred and that the control should throw away everything and start over.
If that's what is happening here, then there's not much we can do about it. But I find it odd that AcceptChanges would cause a Reset notification. So I have asked Infragistics Developer support to write this up for developer review.
Hello Eric,
Could you please give me sample which demonstrates how UltraGrid “reset *anytime* there is a rowstate change in the datasource”. May be you have meant refresh, and yes UltraGrid should refresh its layout if there is any changes on the underlying data source (of course if only the underlying data source notifies the grid that there is any changes).
You have mentioned that this follow up #369642, what this number should mean ?
I ma waiting for your feedback.