Hi
We are using the gridview control in combination with the RadDomainDatasource and the RadDataPager. (Silverlight 4, latest release of RadGridView) It works pretty well but the filtering performance could be better.
We have about 50 columns (some cells are filled with quite a long text) and the grid is initialy paged with 100 rows. When i know start filtering using the default filter control it takes more than 8 seconds till the data is loaded, of which less than 2 seconds caused by the server/database side. When filtering starts, it takes up to 3 seconds till the DataSource is actually loading. I have bound a progressbar to the ria service domain context and it takes 3 seconds and more till it appears.
So the time is lost before the request is sent to the server. I understand, that with many columns, the filter descriptors have to be collected from every column but having 50 columns this should be a matter of milliseconds and not seconds. It also has something to do with how many rows are in the grid. When there is only one row, filtering works fast, having 100 row, it is slow. (Example: i have 100 (paged) rows in my grid, i filter it down to 1 row. this process takes 9 seconds. Now i clear the filtering and i get 100 visible rows again. This is much much faster. It would seem more logical, if it was rewersed. )
So I wonder, what is causing this delay and how we could improve the performance. Any help is appreciated.
Thanks in advance.
We are using the gridview control in combination with the RadDomainDatasource and the RadDataPager. (Silverlight 4, latest release of RadGridView) It works pretty well but the filtering performance could be better.
We have about 50 columns (some cells are filled with quite a long text) and the grid is initialy paged with 100 rows. When i know start filtering using the default filter control it takes more than 8 seconds till the data is loaded, of which less than 2 seconds caused by the server/database side. When filtering starts, it takes up to 3 seconds till the DataSource is actually loading. I have bound a progressbar to the ria service domain context and it takes 3 seconds and more till it appears.
var bindingLoading = new Binding();
bindingLoading.Source = context;
bindingLoading.Path = new PropertyPath("IsLoading); // bound to Ria service domain context
bindingLoading.Mode = BindingMode.OneWay;
bindingLoading.Converter = new VisibilityConverter();
progressbar.SetBinding(ProgressBar.VisibilityProperty, bindingLoading);
So the time is lost before the request is sent to the server. I understand, that with many columns, the filter descriptors have to be collected from every column but having 50 columns this should be a matter of milliseconds and not seconds. It also has something to do with how many rows are in the grid. When there is only one row, filtering works fast, having 100 row, it is slow. (Example: i have 100 (paged) rows in my grid, i filter it down to 1 row. this process takes 9 seconds. Now i clear the filtering and i get 100 visible rows again. This is much much faster. It would seem more logical, if it was rewersed. )
So I wonder, what is causing this delay and how we could improve the performance. Any help is appreciated.
Thanks in advance.