I would like to update my grid using datasourceurl, but allow local sorting that is maintained after the datasourceurl is updated. Is this possible?
Here's a basic scenario of what I'd like to happen:
-Grid is initially loaded.
-User sorts grid by clicking on a column header.
-User selects a different option from some dropdown.
-Grid's data is updated, but the sorting of the column is retained.
Here's what I've tried so far:
client-side:
var url = getNewUrlFromSomeDropDown();
$myGrid.igGrid('option', 'dataSource', url);
...which causes that url to be hit, which does something like this (MVC / C#):
server:
Example 1 (doesn't work at all, grid is blank):
public ActionResult _Employee_Grid(int someFilteringInt)
{ List<Employee> employees = GetEmployees(someFilteringInt); return Json(employees, JsonRequestBehavior.AllowGet);
}
Example 2 (Populates grid with new data, but the data is not sorted in any particular way, and the sorting arrows are lost.)
public ActionResult _Employee_Grid(int someFilteringInt) { List<Employee> employees = GetEmployees(someFilteringInt);
GridModel model = new GridModel(); GridSorting sorting = new GridSorting(); sorting.Mode = SortingMode.Single; model.Features.Add(sorting); model.DataSource = employees.AsQueryable<Employee>(); return model.GetData(); }
Also, in the 2nd example, I must add the sorting feature to the model, or else sorting is lost all together. This means that the GetData() method generates different JSON data depending on the features and properties of the grid? If so, this doesn't make sense IMO. GetData should have nothing to do with the grid's setup. It sort of defeats the purpose of only reloading the data instead of the entire grid.
Thanks in advance for any help!
Hello Josh,
I am following up to see if the service release has resolved this matter for you. Please let me know if you have any further questions concerning this matter.
Sincerely,Mike P.Developer Support EngineerInfragistics, Inc.www.infragistics.com
Thank you for the update. I have done some further looking into this matter and have the following information. With the sample you have provided with the service release 1010 I have been able to reproduce this issue. When I update to the latest service release of 2090 I am no longer able to reproduce this issue. I recommend you update to the latest service release for v12.1 of the jQuery product. You can do so by using the following steps:
1) Go to https://ko.infragistics.com/my-account/keys-and-downloads/2) Click on the Product Name for the 2012 Vol. 1 product you have. 3) Click the Service Releases section.4) Click and download the NetAdvantage jQuery 2012 Vol. 1 – Service Release.
Please let me know if you have any questions concerning this matter.
I took your project and made the first column hidden, and the issue occurs:
http://www.joshnoe.com/igGrid_Rebind_HiddenColumn.zip
My only guess is that we have different versions of Infragistics and mine (3.12.1.1010) has the issue whereas yours doesn't?
Thank you for the update. I am glad to hear you have been able to find a work around. I have done some modification of my own sample to set the first column to be hidden; I am still unable to reproduce this issue. Do you have an isolated sample that reproduces this issue? As I would like to look further into it and if necessary log it in our systems so it can be looked into by our development team.
Here's the TLDR for anyone who gets to here with the same issue:
Bug: If you set a column to be hidden, all columns defined after it will lose their sorting ability when dataBind is called.
Workaround: Define all hidden columns last, after all your other columns.
Mike, Thanks! Your example had a runtime error because you didn't include the Infragistics files, but I added them to the project and it worked. After comparing the javascript rendered from your example to our code, I eventually found the issue as stated above. In my case my first column was hidden, so none of the columns defined after it were sortable. There are some other points of weirdness about your example (returning the entire view in the dataSourceUrl???), but I'll try and research them and post in another thread if I have any questions. Much appreciated!