KendoGrid没有填充,但它应该是

时间:2016-01-15 23:53:57

标签: c# jquery asp.net-mvc kendo-grid

我有一个KendoGrid在我看来,由于某种原因,它没有填充,我不知道为什么,所有事情表明它应该,但它不想,也许我错过了什么?

这是事件的顺序......

$(document).ready(function () {
    GetCatalogInfo();
})

function GetCatalogInfo() {
    $.ajax({
        type: "GET",
        url: URLParams.GetTheCatalog,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data, textStatus, jqXHR) {
            TheCatalogGrid(data);
        }
    })
}

这是我的网格

function TheCatalogGrid(catalogData) {
    $("#CatalogGrid").kendoGrid({
        dataSource: {
            catalogData
        },
        columns: [{
            field: "GlobalGroupID",
            title: "GlobalGroupID",
            hidden: true
        },
        {
            field: "GlobalGroupName",
            title: "GroupName"
        }],
        scrollable: true,
        sortable: true,
        pageable: false,
        selectable: "row",
        height: 275
    })
}

我的控制器看起来像这样

public JsonResult GetCatalog()
{
    List<GridCatalog> lst = new List<GridCatalog>();
        _Catalog = CatalogObjectFactory.GetCatalog("C:\\ProgramData\\AdvanceWare\\CatalogDLLs", "CabParts", "2015.09.28-22.14.15");
        //  comment out for debugging catalog with reference to the CatalogsProject
        if (_Catalog != null)
        {
            _GlobalGroupOptions = new GlobalGroupOptions(_Catalog);
            var query = from ggo in _GlobalGroupOptions
                        select new
                        {
                            GlobalGroupID = ggo.GlobalGroup.GlobalGroupID,
                            GlobalGroupLevel = ggo.GlobalGroup.Level,
                            GlobalGroupName = ggo.GlobalGroup.GlobalGroupName,
                            IsRequired = (ggo.GlobalGroup.Required == 0) ? "" : "!",
                            OptionName = ggo.CurrentGlobalOption == null ? "" : (ggo.IsValid ? ggo.CurrentGlobalOption.OptionName : ""),
                            CurrentOptionID = ggo.CurrentGlobalOption == null ? 0 : ggo.CurrentGlobalOption.OptionID,
                            InvalidOption = ggo.CurrentGlobalOption == null ? "" : (ggo.IsValid ? "" : ggo.CurrentGlobalOption.OptionName)
                        };
        foreach(var item in query)
        {
            lst.Add(new GridCatalog
            {
                GlobalGroupID = item.GlobalGroupID,
                GlobalGroupName = item.GlobalGroupName
            });
        }
    }
    return Json(lst, JsonRequestBehavior.AllowGet);
}

这是数据类

public class GridCatalog
{
    public int GlobalGroupID { get; set; }
    public string GlobalGroupName { get; set; }
    public int GlobalGroupLevel { get; set; }
    public string IsRequired { get; set; }
    public string OptionName { get; set; }
    public int CurrentOptionID { get; set; }
    public string InvalidOption { get; set; }
}

数据存在于我的lst变量中,我在逐步浏览控制器时以及当我在Google Chrome中使用开发人员工具时对其进行了双重检查,这里是我在Chrome浏览器中显示的数据图片

Captured Data

以下是我视图中的代码

<div id="CatalogGrid">

</div>

数据存在但由于某种原因我的网格不想填充

1 个答案:

答案 0 :(得分:1)

我认为您的问题出在DataSource中,试试这个:

dataSource: {
    type: "json",
    data: catalogData,
}