2015-04-10 2 views
0

У меня есть коллекция этих объектов JavaScript: (отображается как DTO)Угловая UI-Grid Pivot

public class ParameterValueDTO : DataTransferObject 
{ 
    public int Id { get; set; } 
    public String Comments { get; set; } 
    public String Description { get; set; } 
} 

По умолчанию AngularJS UI-Grid создаст строку для каждого объекта ParameterValue с 3-мя столбцами: Id , Комментарии, Описание, которое отлично работает.

IMAGE: Standard objects mapping to table

То, что я хотел бы сделать, однако создать столбец для значения каждого объекта «Комментарии» и привязать его к соответствующему «Описание» значение. По существу, поворот таблицы так, что она имеет только 1 строку (забудьте о столбце Идентификатор).

Javascript Я пробовал:

var cols = []; 
var row = obj.data.ProductAttributes[0].Specifications[0].ParameterValues 
var length = row.length; 


for (var i = 0; i < length; i++) { 
    cols.push({ 
     field: "Description", 
     displayName: row[i].Comments 
    }); 
} 

$scope.gridOptions = { 
    columnDefs: cols, 
    data: row 
}; 

Вышеуказанные результаты в следующем что, очевидно, неверно:

IMAGE: One column, new row for each Description

Можно ли сделать это с текущей структурой данных или Каков именно правильный подход, который я должен принять?

ответ

0

Я бы изменил код, чтобы просто переработать ваши данные. ui-grid действительно только привязывается к столбцам и строкам, она не может отменить порядок.

Так что вы хотите:

var pivotData = [ {} ]; 
data.forEach(function(parameterDTO) { 
    pivotData[0][parameterDTO.comments] = parameterDTO.description; 
}); 

Тогда вы должны быть в состоянии использовать этот новый объект данных в качестве данных сетки.

+0

не могли бы вы рассказать подробнее. – Ram

Смежные вопросы