I'm programmatically creating a RadAjaxManager object as I'm creating custom webservercontrol that wraps the Grid, ContextMenus, and a Loading Panel to do some custom operations.
So far, I've been unable to get the RadAjaxManager to operate as it does when it's added directly to a page. The loading indicator doesn't show up on the grid at all, and I consistently get an error when attempting to fire Rebind on the grid from an ajaxRequest:
'ctl00_MainContent_SpreadsheetControl_ctl00_MainContent_SpreadsheetControl_MainGridPanel'. If it is being updated dynamically then it must be inside another UpdatePanel.
The code used to create and initialize the objects is below.
Any idea what the issue could be?
}
So far, I've been unable to get the RadAjaxManager to operate as it does when it's added directly to a page. The loading indicator doesn't show up on the grid at all, and I consistently get an error when attempting to fire Rebind on the grid from an ajaxRequest:
'ctl00_MainContent_SpreadsheetControl_ctl00_MainContent_SpreadsheetControl_MainGridPanel'. If it is being updated dynamically then it must be inside another UpdatePanel.
The code used to create and initialize the objects is below.
Any idea what the issue could be?
protected
void
CreateControls()
//Called from CompositeControl constructor
{
AjaxManager =
new
RadAjaxManager() { ID=
"AjaxManager"
, EnableAJAX =
true
};
InputManager =
new
RadInputManager() { EnableEmbeddedBaseStylesheet =
false
};
CellContextMenu =
new
RadContextMenu() { ID =
"CellContextMenu"
, OnClientLoad =
"onCellContextMenuLoad"
};
HeaderContextMenu =
new
RadContextMenu() { ID =
"HeaderContextMenu"
, OnClientLoad =
"onCellContextMenuLoad"
};
LoadingPanel =
new
RadAjaxLoadingPanel() { ID =
"RadAjaxLoadingPanel"
};
Grid =
new
RadGrid()
{
ID =
"MainGrid"
,
AutoGenerateColumns =
false
,
AllowMultiRowEdit =
true
,
CellSpacing = 0,
CellPadding = 0,
GridLines = GridLines.None,
AllowAutomaticUpdates =
true
,
AllowFilteringByColumn =
true
,
AllowSorting =
true
,
GroupingEnabled =
false
,
ShowGroupPanel =
false
,
};
}
protected
void
InitializeComponent()
//called from 'CreateChildControls' override.
{
this
.Controls.Add(AjaxManager);
Grid.ClientSettings.Scrolling.AllowScroll =
true
;
Grid.ClientSettings.Scrolling.UseStaticHeaders =
true
;
Grid.ClientSettings.ClientEvents.OnGridCreated =
"onGridCreated"
;
Grid.ClientSettings.ClientEvents.OnRowCreated =
"onRowCreated"
;
Grid.ClientSettings.ClientEvents.OnRowDestroying =
"onRowDestroying"
;
Grid.ClientSettings.ClientEvents.OnRowContextMenu =
"onRowContextMenu"
;
Grid.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Bottom;
Grid.MasterTableView.EditMode = GridEditMode.InPlace;
Grid.MasterTableView.AllowCustomSorting =
true
;
this
.Controls.Add(Grid);
this
.Controls.Add(CellContextMenu);
this
.Controls.Add(HeaderContextMenu);
this
.Controls.Add(LoadingPanel);
Grid.PreRender += OnPreRender;
Grid.ItemDataBound += OnItemDataBound;
}
protected
override
void
OnLoad(EventArgs e)
{
//base.OnLoad(e);
RadScriptManager.RegisterStartupScript((Control)
this
,
this
.GetType(),
this
.AjaxManager.ClientID,
"identifyAjaxManager('"
+ AjaxManager.ClientID +
"');"
,
true
);
AjaxManager.AjaxSettings.AddAjaxSetting(Grid, Grid, LoadingPanel);
AjaxManager.AjaxSettings.AddAjaxSetting(AjaxManager, Grid);
}