我在这里难过。
我在使用Telerik RadGrids的应用程序页面上工作。我想这很直截了当。网格中的每一行都有一个EditFormSettings模板集。其中有一个DropDownList和一个Panel。 DropDownList包含许多要显示的不同报告,因此当用户选择某些内容时,会动态地将UserControl添加到此面板并显示一个报告,该报告可以是先前制作的UserControl中的另一个RadGrid或RadRadialGauge。该功能可以正常工作。
如果在此面板中加载RadGrid,我会扩展另一行时出现问题。显示以下错误:
*描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:无效的JSON原语:。*
如果首次加载RadRadialGauge并且我继续扩展另一行,则不会发生这种情况。只有它是带有RadGrid的UserControl。这个UserControl非常基础,所以我认为顶部没有任何东西可能是罪魁祸首。
一些代码可以帮助解释我写的内容。
<EditFormSettings EditFormType="Template">
<FormTemplate>
<div id="dashboardExpandedTemplate">
<asp:DropDownList ID="ddlReportsList" AutoPostBack="true" OnSelectedIndexChanged="ReportSelected" runat="server" />
<asp:Panel ID="pnlReports" runat="server" />
</div>
</FormTemplate>
</EditFormSettings>
protected void ReportSelected(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
if (ddl.SelectedIndex != 0)
{
GridEditFormItem editItem = (GridEditFormItem)ddl.NamingContainer;
Panel pnlReports = (Panel)editItem.FindControl("pnlReports");
pnlReports.Controls.Clear();
SavedReport saved = new SavedReport(int.Parse(ddl.SelectedValue));
Control cntrl = Page.LoadControl("/controls/" + saved.ControlPath);
}
}
先谢谢你。
答案 0 :(得分:0)
想我会根据您的评论部分发布此答案。我在GridTemplateColumn上设置了ClientIDMode="Static"
<telerik:GridTemplateColumn>
<ItemTemplate>
<telerik:RadButton OnClientClicked="windowShow" ClientIDMode="Static" Text="Example" runat="server">
</telerik:RadButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
OP似乎通过在主RadGrid标记上设置ClientIDMode="Static"
来获得错误。我想我们都应该远离将这个属性与Telerik混合在一起。在我终于找到这篇文章之前,我花了半天时间在谷歌上面。