KendoUI树视图子项显示为未定义

时间:2016-03-11 17:52:38

标签: javascript c# kendo-ui treeview kendo-treeview

我在kendoUI中有一个树视图,其中主节点正在调用mvc控制器,并且该控制器查看是否传入了可空的id,然后使用不同的模型。

我点击了网址:http://localhost:2949/Report/GetReportGroupAssignments

我看到了这个JSON

[
    {"Id":1,"ReportGroupName":"Standard Reports","ReportGroupNameResID":null,"SortOrder":1},
    {"Id":2,"ReportGroupName":"Custom Reports","ReportGroupNameResID":null,"SortOrder":2},
    {"Id":3,"ReportGroupName":"Retail Reports","ReportGroupNameResID":null,"SortOrder":3},
    {"Id":4,"ReportGroupName":"Admin Reports","ReportGroupNameResID":null,"SortOrder":5},
    {"Id":5,"ReportGroupName":"QA Reports","ReportGroupNameResID":null,"SortOrder":4}
]

现在我的mvc控制器看起来像这样

public JsonResult GetReportGroupAssignments(int? id)
{
    var model = new List<ReportGroup>();
    var defModel = new List<ReportDefinition>();

    try
    {
        if (id == null)
        {
            model = _reportService.GetReportGroups("en-us").ToList();
            return Json(model, JsonRequestBehavior.AllowGet);
        }
        else
        {
            defModel = _reportService.GetReportDefinitions().Where(e=>e.ReportGroupID ==Convert.ToInt32(id)).ToList();
            return Json(defModel, JsonRequestBehavior.AllowGet);
        }   
    }
    catch (Exception ex)
    {
        Logger.Error(ex, "Error loading LoadReportList.");
        return null;
    }
}

My Kendo javascript如下所示:

var serviceRoot = "/Report"; // "//demos.telerik.com/kendo-ui/service";
homogeneous = new kendo.data.HierarchicalDataSource({
    transport: {
        read: {
            url: serviceRoot + "/GetReportGroupAssignments", //"/LoadReportTree", // "/Employees",
            dataType: "json" 
        }
    },
    schema: {
        model: {
            id: "Id" //"ReportGroupName"
            ,hasChildren: "Id"
        }
    }
});

var treeview = $("#treeview").kendoTreeView({
    expanded: true,
    dragAndDrop: true,
    dataSource: homogeneous,
    dataTextField: "ReportGroupName" 

}).data("kendoTreeView");

似乎调用(我发现子记录有一个“加载”方法,它在seens后面调用,所以基本上我传入ID以获取来自其他模型的数据(db中的表)<登记/> (Id与automapper映射到ReportGroupID)

所以,当我点击“Standard Rports”的左侧时,我将所有这些孩子都定义为未定义,如何正确显示这些?

enter image description here

更新:我的ReportDefinition类:

public class ReportDefinition {
    public override int Id { get; set; } 
    public string ReportKey { get; set; } 
    public string ReportName { get; set; } 
    public int? ReportNameResID { get; set; } 
    public string ReportDef { get; set; } 
    public int? ReportDefinitionResID { get; set; } 
    public string ReportAssembly { get; set; } 
    public string ReportClass { get; set; } 
    public int ReportGroupID { get; set; } 
    public int AppID { get; set; } 
    public int SortOrder { get; set; } 
    public bool IsSubReport { get; set; }
} 

1 个答案:

答案 0 :(得分:1)

我认为您的问题是类ReportDefinition没有名为ReportGroupName的属性。这就是TreeView显示'undefined'的原因。

尝试将此属性添加到R​​eportDefinition类,如:

public class ReportDefinition {

    // Other Properties

    // I guess this property is missing
    public string ReportGroupName { get; set; }

}