I have a master page containing a Treeview used as a menu, and a content area for the site pages. One site page has a summary-style RadGrid at the top of the page, and then a tabstrip with a Multiview. Each PageView contains a user control with the content for that PageView. I am unable to get the correct ajax behavior.
When I follow what I understand to be Telerik's guidance and list the tabview and multipage each as ajax initiators and updated controls, client-side validation breaks in all the page views. I could live with that, but one of the page view user controls contains a RadEditor, and whatever breaks the client-side validation also results in updated editor content not being saved when the rest of the page data is saved. Watching the server-side validation function for the custom validator assigned to the RadEditor always shows the original editor content and never shows the updated content. Maybe some necessary Javascript for the editor content retrieval is breaking, along with the client-side validation javascript? The client-side validation breaks in IE, Firefox and Chrome. The failure to update the RadEditor content only happens in IE.
If I remove the RadAjaxManagerProxy and instead surround the page's content with an AspPanel, client-side validation resumes working. Since the user controls on each PageView contain RadGrid controls, I need to ajaxify each of the user controls individually. That works- the client-side validation works, and the user control with the RadEditor successfully saves the updated editor content.
But since each user control is now individually ajaxified, the main page's summary RadGrid does not get updated when it should. Each user control raises an update event which is handled by the main page. I tried dynamically adding an ajax update for the summary RadGrid, but I get an internal error in Telerik Javascript when the code executes. This is the update event handler on the main page, which tries to assign the desired AjaxSetting. The rest of the event handler performs the appropriate updates to the main page's summary RadGrid, but the .AddAjaxSetting throws an internal exception.
Is there any way to force a control on the main page to update it's display like this? Or is there any better approach to ajaxifying a tabstrip containing user controls with RadGrids?
When I follow what I understand to be Telerik's guidance and list the tabview and multipage each as ajax initiators and updated controls, client-side validation breaks in all the page views. I could live with that, but one of the page view user controls contains a RadEditor, and whatever breaks the client-side validation also results in updated editor content not being saved when the rest of the page data is saved. Watching the server-side validation function for the custom validator assigned to the RadEditor always shows the original editor content and never shows the updated content. Maybe some necessary Javascript for the editor content retrieval is breaking, along with the client-side validation javascript? The client-side validation breaks in IE, Firefox and Chrome. The failure to update the RadEditor content only happens in IE.
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxyTopic"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadTabStripTopic"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadTabStripTopic"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadMultiPageTopicSubforms"
LoadingPanelID
=
"RadAjaxLoadingPanel_Topic"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"userMessageDisplay"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadMultiPageTopicSubforms"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadTabStripTopic"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadMultiPageTopicSubforms"
LoadingPanelID
=
"RadAjaxLoadingPanel_Topic"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGridTopic"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"userMessageDisplay"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
If I remove the RadAjaxManagerProxy and instead surround the page's content with an AspPanel, client-side validation resumes working. Since the user controls on each PageView contain RadGrid controls, I need to ajaxify each of the user controls individually. That works- the client-side validation works, and the user control with the RadEditor successfully saves the updated editor content.
But since each user control is now individually ajaxified, the main page's summary RadGrid does not get updated when it should. Each user control raises an update event which is handled by the main page. I tried dynamically adding an ajax update for the summary RadGrid, but I get an internal error in Telerik Javascript when the code executes. This is the update event handler on the main page, which tries to assign the desired AjaxSetting. The rest of the event handler performs the appropriate updates to the main page's summary RadGrid, but the .AddAjaxSetting throws an internal exception.
protected void TopicTabForm_AfterUpdate(object sender, EventArgs e)
{
RadAjaxManager ajaxManager = RadAjaxManager.GetCurrent(Page);
ajaxManager.AjaxSettings.AddAjaxSetting(sender as Control, this.RadGridTopic);
Is there any way to force a control on the main page to update it's display like this? Or is there any better approach to ajaxifying a tabstrip containing user controls with RadGrids?