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_NeedDataSource
string 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
>