我在这里难过 .
我正在使用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);
}
}
先谢谢你 .
1 回答
想我会根据你的评论部分发布这个答案 . 我在GridTemplateColumn上设置了
ClientIDMode="Static"
OP似乎在主RadGrid标签上设置
ClientIDMode="Static"
时出错 . 我想我们都应该远离将这个属性与Telerik混合在一起 . 在我终于发现这篇文章之前,我花了半天时间,整个谷歌 .