Группировка плитки в PhoneJS

Я пытаюсь показать продукты из базы данных в элементе tileview в devexpress phonejs. Я могу успешно загружать элементы из источника данных в тайловое представление, но я хотел бы сгруппировать элементы по имени категории и действительно не знаю, как это сделать. Любая помощь будет оценена.

JS-код

return {
    sale: sale,
    departmansSource: {
        store: PosApplication.db.Departmans,
        select: ["DepartmanID", "DepartmanName"]
    },
    categoriesSource: {
        store: PosApplication.db.Categories,
        select: ["CategoryID", "CategoryName"]
    },
    productsSource: {
        store: PosApplication.db.Products,
        filter: ["DepartmanID","=", 2],
        select: ["ProductID", "ProductName", "DepartmanID", "DepartmanName", "CategoryID", "CategoryName"]
    },
    approversSource: {
        store: PosApplication.db.Approvers,
        select: ["ApproverId", "ApproverName"]
    },
    handleSave: handleSave,
    handleCancel: handleCancel,
    viewShown: handleViewShown,
    notifiy: notifiy
};

HTML-код

<div id="urunlertile" data-bind="dxTileView: { height: '550', dataSource: productsSource, itemClickAction: notifiy, baseItemHeight: 70, baseItemWidth: 150, itemMargin: 3,  }">
            <div data-options="dxTemplate:{name:'item'}">                    

                <p><span data-bind="text: $data.CategoryName"></span></p>
                <p><span data-bind="text: $data.ProductName"></span></p>
                </div>                           
            </div>
            </div>  

person Hakan    schedule 14.06.2014    source источник


Ответы (1)


Вы можете использовать обратный вызов postProcess для группировки/сортировки данных в вашем источнике данных.

См. документ с примером: http://js.devexpress.com/Documentation/Howto/Data_Layer/Data_Layer?version=14_1#Data_Layer_Data_Layer_Reading_Data_Data_Transformation_Post_Processing

Обратите внимание, что dxTileView не поддерживает отображение сгруппированных данных по умолчанию. Сгруппировав данные, как

[{ key: "Category1", items: [{ name: "Product1" }, ...], ...] 

вы можете поместить вложенный dxTileView в шаблон элемента для отображения продуктов для каждой категории.

person tabalin    schedule 15.06.2014