首页 文章

Telerik RadGrid的JSON原语无效

提问于
浏览
2

我在这里难过 .

我正在使用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 回答

  • 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混合在一起 . 在我终于发现这篇文章之前,我花了半天时间,整个谷歌 .

相关问题