Telerik RadGrid的JSON原语无效

时间:2013-04-18 19:00:25

标签: asp.net json telerik radgrid

我在这里难过。

我在使用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 :(得分: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混合在一起。在我终于找到这篇文章之前,我花了半天时间在谷歌上面。