Hi, Everyone,
I’m having some issues with the RAD AjaxManager/Rad AjaxManager Proxy working with the reporting WebForms.ReportViewer that I can’t get around. I’m not sure if this is a Reporting issue or an ASP.Net issue, but I’m going to post here initially.
A little background: I just upgraded both the ASP.Net AJAX and Reporting toolsets from Q3 2012 SP1 to the Q3 2013 version. The scenario I’ll present below has been working with no issues in the Q3 2012 SP1 version and broke after the upgrade.
Basically, I’ve got a master page that has an AJAX Manager control and a content page that has the AjaxManager Proxy. Also on the content page, I’ve got a button and an ASP Panel that has a ReportViewer control and an ASP Label. The AjaxManager Proxy has been configured with AJAX settings for the button, with the ASP Panel identified as the control to be updated. The markup for this is below (this is inside the content page’s ASP Content tag):
<
div
>
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadButton1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"pnlQuoteView"
UpdatePanelCss />
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
table
border
=
"0"
cellpadding
=
"0"
cellspacing
=
"0"
width
=
"1300"
style
=
"border-style: solid; border-width: 1px; margin-left: auto; margin-right: auto; border-color: rgb(223, 233, 245);"
>
<
tr
>
<
td
>
<
telerik:RadButton
ID
=
"RadButton1"
runat
=
"server"
OnClick
=
"RadButton1_Click"
Text
=
"RadButton"
>
</
telerik:RadButton
>
<
br
/>
<
asp:Panel
ID
=
"pnlQuoteView"
runat
=
"server"
Width
=
"100%"
>
<
asp:Label
ID
=
"lblTest"
runat
=
"server"
></
asp:Label
>
<
telerik:ReportViewer
ID
=
"rvQuote"
runat
=
"server"
ShowDocumentMapButton
=
"False"
ShowHistoryButtons
=
"False"
ShowParametersButton
=
"False"
ShowRefreshButton
=
"False"
Width
=
"100%"
Height
=
"600px"
ViewMode
=
"Interactive"
ShowExportGroup
=
"False"
ShowPrintButton
=
"False"
ProgressText
=
"Generating quote..."
></
telerik:ReportViewer
>
</
asp:Panel
>
</
td
>
</
tr
>
</
table
>
</
div
>
In the Page Load event for the content page, I’m setting the Visible property of the ReportViewer to false, as I don’t want it to display until the button is clicked. I’m doing the same thing with the Label.
The problem is coming when I try to set the Visible property of the ReportViewer to true in the button click event (see the code below):
protected
void
Page_Load(
object
sender, EventArgs e)
{
this
.rvQuote.Visible =
false
;
this
.lblTest.Visible =
false
;
}
protected
void
RadButton1_Click(
object
sender, EventArgs e)
{
this
.lblTest.Visible =
true
;
this
.lblTest.Text =
"help!"
;
rvQuote.Visible =
true
;
}
When I do this, all AJAX stops working on the page because of an unhandled exception in the Telerik.Web.UI.WebResourse.axd:
JavaScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Value cannot be null. Parameter name: key.
And the following gets written to the machine's Application Event Log for the unhandled exception:
Exception information:
Exception type: ArgumentNullException
Exception message: Value cannot be null.
Parameter name: key
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
at Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.GetLiteralTraceData(LiteralControl literal, TraceData& data)
at Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.GetTraceData(Object renderedObject)
at Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.EndRendering(TextWriter writer, Object renderedObject)
at System.Web.UI.RenderTraceListener.RenderTraceListenerList.EndRendering(TextWriter writer, Object renderedObject)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
at System.Web.UI.WebControls.CompositeControl.Render(HtmlTextWriter writer)
at Telerik.ReportViewer.WebForms.ReportViewer.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at Telerik.Web.UI.ControlRenderer.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.UpdatePanel.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.UpdatePanel.Render(HtmlTextWriter writer)
at Telerik.Web.UI.OurUpdatePanel.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.PageRequestManager.RenderFormCallback(HtmlTextWriter writer, Control containerControl)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
at System.Web.UI.HtmlFormWrapper.System.Web.UI.IHtmlForm.RenderControl(HtmlTextWriter writer)
at System.Web.UI.PageRequestManager.RenderPageCallback(HtmlTextWriter writer, Control pageControl)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The ReportViewer works fine if it’s made visible on page load, or if a full postback is performed with the button click, instead of using AJAX. At first I thought it may be due to setting visible = false in the page load event, as the viewer isn’t initially rendered to the browser and isn’t in the control tree, but doing the same thing with the Label works fine. The error only happens when changing the Visible property of the ReportViewer. (if I comment out the rvQuote.Visible = true; line, the label is visible and displays the expected text.
So, I’m a little confused and need some direction. I did quite a bit of looking in the forums for something similar to this, but I didn't see anything, hence the post. I feel like there’s probably something simple that I’m missing, just can’t quite figure out what it is…
Thanks in advance for any assistance provided!