I have a very complex RadGrid that is bound with a list that's stored in the session. The grid's master table consists of one row per day in a given month, so it ranges from 28 to 31 rows. Each grid item has 8 controls varying between native ASP controls to Telerik controls. Each grid item also has a detail table which contains 3 gridbound columns with between 5 and 8 rows a piece. As you can imagine, it's a pretty large grid.
The issues we come across relate to speed with ajaxification. We have the ajaxmanager set up as an AjaxSetting and one of the controls it updates is the radgrid (rgEmployees). We have it set up this way because we have clientside script that calls the ajaxmanager using .ajaxRequest("RebindGrid") which ultimately results in the grid being rebound serverside. Here's the declaration:
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rgEmployees" LoadingPanelID="RadAjaxLoadingPanel1" />
<telerik:AjaxUpdatedControl ControlID="OtherControls" />
<telerik:AjaxUpdatedControl ControlID="OtherControls" />
<telerik:AjaxUpdatedControl ControlID="OtherControls" />
</UpdatedControls>
</telerik:AjaxSetting>
Here's where it gets hairy: Each edit button, when clicked, calls .ajaxRequest("PopulateItem"). This takes the data from all the controls in the grid item and populates its cooresponding item in the session list on the server, after whice we use the ajax manager's ClientEvents-OnResponseEnd to invoke other javascript. The issue is that, since the button also calls .ajaxRequest(), the entire grid goes through its harrowing update/re-rendering process when we click the button since the radgrid is an updated control of the ajax manager.
Is there a way to modify the ajaxsettings/updated controls via client script? We would want to do this so that we could disable it for when we click the edit button since we wouldn't need to update any controls, but would want to keep it since we would need to rerender the grid after a rebind.
Conceptually, I would like to do something like this in javascript:
var UpdatedControl = AjaxManager.GetAjaxSetting("RadAjaxManager1").GetUpdatedControl("rgEmployees");
UpdatedControl.disable();
AjaxManager.ajaxRequest("PopulateItem")
UpdatedControl.enable();
I obviously just made that up, but perhaps you can see where I am going with this.
If necessary, I can create a sample app. Due to the complexity of the grid, though, that could take some time, so I hope I explained myself good enough here.