我被难住了。
我正在处理使用 Telerik RadGrids 的应用程序页面。我想这很简单。网格中的每一行都有一个 EditFormSettings 模板集。里面有一个 DropDownList 和一个 Panel。DropDownList 包含许多要显示的不同报告,因此当用户选择某些内容时,UserControl 会动态添加到此面板并显示一个报告,该报告是另一个 RadGrid 或先前制作的 UserControl 内的 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);
}
}
提前谢谢你。