I am receiving this error if I fetch data from view which has column names in arabic.
Steps to reproduce:
Provide following query on RadPivotGrid1_NeedDataSourcestring query = "SELECT شهر, الوفيات FROM [ViewName]";(sender as RadPivotGrid).DataSource = GetDataTable(query);if we provide one arabic name this pivot table renders successfully, If there are more than one arabic columns, page crashes with following message
Multiple controls with the same ID 'rc_' were found. FindControl requires that controls have unique IDs.[HttpException (0x80004005): Multiple controls with the same ID 'rc_' were found. FindControl requires that controls have unique IDs.] System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) +233 System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) +311 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +306 System.Web.UI.Control.FindControl(String id) +12 Telerik.Web.UI.PivotGridFieldsWindow.AddAttributesToRender(HtmlTextWriter writer) +76 System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +20 Telerik.Web.UI.RadWebControl.RenderBeginTag(HtmlTextWriter writer) +36 System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +20 Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer) +92 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10 Telerik.Web.UI.RadCompositeDataBoundControl.RenderContents(HtmlTextWriter writer) +115 Telerik.Web.UI.RadPivotGrid.RenderContents(HtmlTextWriter writer) +94 System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32 Telerik.Web.UI.RadCompositeDataBoundControl.Render(HtmlTextWriter writer) +92 Telerik.Web.UI.RadPivotGrid.Render(HtmlTextWriter writer) +275 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 Telerik.Web.UI.RadAjaxPanel.RenderChildren(HtmlTextWriter writer) +218 System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10 Telerik.Web.UI.RadAjaxPanel.RenderContents(HtmlTextWriter writer) +45 System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32 Telerik.Web.UI.RadAjaxPanel.Render(HtmlTextWriter writer) +80 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 Telerik.Web.UI.ControlRenderer.Render(HtmlTextWriter writer) +161 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 System.Web.UI.Control.Render(HtmlTextWriter writer) +10 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 System.Web.UI.UpdatePanel.RenderChildren(HtmlTextWriter writer) +248 System.Web.UI.UpdatePanel.Render(HtmlTextWriter writer) +37 Telerik.Web.UI.OurUpdatePanel.Render(HtmlTextWriter writer) +464 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 Telerik.Web.UI.PreControlToAjaxify.Render(HtmlTextWriter writer) +208 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128 System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +216 System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32 System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +53 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 System.Web.UI.Page.Render(HtmlTextWriter writer) +29 System.Web.UI.Adapters.ControlAdapter.Render(HtmlTextWriter writer) +17 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +106 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page) +1222 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +268 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 System.Web.UI.Page.Render(HtmlTextWriter writer) +29 System.Web.UI.Adapters.ControlAdapter.Render(HtmlTextWriter writer) +17 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +106 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1386
I Investigated and found that issue is because when generating span id RadPivotGrid uses column name as part of control name
and it does not consider the arabic character for the id attribute.
If arabic character can not be used then PivotGrid should append a counter with the id so that it does not generate the duplicate id.
Following is the HTML generated with one arabic column and one english column
<td class="rpgFilterZone" colspan="2">
<span id="RadPivotGrid1_ctl00_ctl00_SpanPanelFieldsPopup" class="rpgFieldsPopup">
<span class="rpgFieldsPopupWrapper">
<span id="RadPivotGrid1_ctl00_ctl00_rc_" class="rpgFieldItem">شهر</span>
<span id="RadPivotGrid1_ctl00_ctl00_rc_Year" class="rpgFieldItem">Year</span>
</span><span class="rpgGroupedFieldsTitle">All Fields</span></span>
</td>