Иерархическая сетка Infragistics: привязать JsonResult к сетке

Я публиковал сообщения на форумах Infragistics безрезультатно, поэтому я решил спросить сообщество, кто может использовать их продукт.

Я реализую иерархическую сетку с помощью IgniteUI и не могу связать мой JsonResult с сеткой. Сетка будет отображаться с правильным количеством строк, но ни один из столбцов не будет заполнен.

У меня есть следующая сетка:

$("#grid").igHierarchicalGrid({
                dataSourceType: "json",
                dataSource: "/Products/GetProducts/",
                odata: "false",
                autoGenerateColumns: "false",
                primaryKey: "Id",
                initialDataBindDepth: 1,
                columns: [
                    { headerText: "Id", key: "Id", dataType: "number" },
                    { headerText: "SKU", key: "SKU", dataType: "string" },
                    { headerText: "UPC", key: "UPC", dataType: "string" },
                    { headerText: "Name", key: "Name", dataType: "string" },
                    { headerText: "ManufacturerId", key: "ManufacturerId", dataType: "number" },
                    { headerText: "ManufacturerSKU", key: "ManufacturerSKU", dataType: "string" },
                    { headerText: "Inventory", key: "Inventory", dataType: "number" },
                    { headerText: "Weight", key: "Weight", dataType: "number" },
                    { headerText: "Price", key: "Price", dataType: "number" },
                    { headerText: "MSRP", key: "MSRP", dataType: "number" },
                    { headerText: "CategoryId", key: "CategoryId", dataType: "number" },
                    { headerText: "Active", key: "Active", dataType: "string" },
                    { headerText: "CreateDate", key: "CreateDate", dataType: "date", format: "MM-d-yyyy, h:mm tt" },
                    { headerText: "UpdateDate", key: "UpdateDate", dataType: "date", format: "MM-d-yyyy, h:mm tt" }
                ],
                features: [
                    {
                        name: "Sorting",
                        type: "local"
                    },
                    {
                        filterExprUrlKey: 'filter',
                        filterLogicUrlKey: 'filterLogic',
                        name: "Filtering",
                        type: "remote",
                        columnSettings: [
                    {
                        columnKey: 'Id',
                        condition: "equals"
                    }
                        ]
                    },
                    {
                        name: 'Paging',
                        type: "local",
                        pageSize: 10
                    }
                ],
                columnLayouts: [
                    {
                        key: "VendorProducts",
                        primaryKey: "Id",
                        foreignKey: "Id",
                        autoGenerateColumns: "false",
                        responseDataKey: 'results',
                        columns: [
                            { headerText: "Id", key: "Id", dataType: "number" },
                            { headerText: "ProductId", key: "ProductId", dataType: "number" },
                            { headerText: "PartnerName", key: "PartnerName", dataType: "string" },
                            { headerText: "VendorSKU", key: "VendorSKU", dataType: "string" },
                            { headerText: "Cost", key: "Cost", dataType: "number" },
                            { headerText: "Inventory", key: "Inventory", dataType: "number" },
                            { headerText: "Active", key: "Active", dataType: "number" }
                        ],
                        features: [
                            {
                                name: "Sorting",
                                type: "local"
                            }]
                    }
                ]
            });

Json возвращается с сервера следующим образом

var data = [{ "Id": 1032, "SKU": "5_113990", "UPC": "10000001", "Name": "NVG7-3P", "ManufacturerId": 1015, "ManufacturerSKU": "NVGONVG73P", "Inventory": 0, "Weight": 3, "Price": 3026.6, "MSRP": 3799, "CategoryId": 1018, "Active": true, "CreateDate": "\/Date(1398794923467)\/", "UpdateDate": "\/Date(1400000587250)\/", "VendorProducts": [{ "Id": 1046, "ProductId": 1032, "PartnerName": "Direct Buy", "VendorSKU": "113990", "Cost": 0, "Inventory": 0, "Active": true }] }];

Который, когда подключен к dataSource будет хорошо отображать сетку, однако, когда сетка вызывает метод:

[HttpGet]
        public JsonResult GetProducts()
        {             
            var model = Query.....  
            return Json(model, JsonRequestBehavior.AllowGet);
         }

Выдается следующая ошибка:

**Uncaught Error: There was an error parsing the JSON data and applying the defined data schema: The input data doesn't match the schema, the following field couldn't be mapped: VendorProducts** 

Я пробовал несколько вещей, но не могу заставить сетку загружаться по требованию.

1 ответ

Решение

Текущий известный вопрос igGrid, см. http://www.infragistics.com/community/forums/p/91530/452561.aspx

Другие вопросы по тегам