我在Angular ui-grid中尝试做的事情看起来很常见,但我找不到任何描述解决方案的内容。
我有一张桌子。像许多表一样,第一行实际上是一个"行标题"。
现在具体是什么意思:
或许值得一提的是,行标题标记来自数据的COME,如:
{
rowHeader : "Fixed Rate",
TenYear: .02,
TwentyYear: .03
},
{
rowHeader : "Variable Rate",
TenYear: .04,
TwentyYear: .05
}
所以我在上面的例子中寻找的是一个表格,其中第一列的行标题是"固定利率"和"可变利率"。该列的样式应该"看起来像"标题单元格而不是数据单元格。
现在我知道其中一些东西像" frezeing"并且可以通过gridOptions中的columnDefs获得关闭排序。但我不清楚的是,是否有一种方法可以宣布第一列是标题,而我只是得到所有这些东西。
这似乎是一种常见的表格范式。
答案 0 :(得分:4)
使用行标题模板非常简单。您可以定义自己的模板,如下所示
var app = angular.module('app', ['ngAnimate', 'ngTouch', 'ui.grid']);
app.controller('MainCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.columns = [{ field: 'TenYear' }, { field: 'TwentyYear' }];
var data = [{
rowHeader : "Fixed Rate",
TenYear: .02,
TwentyYear: .03
},
{
rowHeader : "Variable Rate",
TenYear: .04,
TwentyYear: .05
}]
$scope.gridOptions = {
data : data,
enableSorting: true,
columnDefs: $scope.columns,
onRegisterApi: function( gridApi ) {
$scope.gridApi = gridApi;
var cellTemplate = 'ui-grid/selectionRowHeader'; // you could use your own template here
$scope.gridApi.core.addRowHeaderColumn( { name: 'rowHeaderCol', displayName: '', width: 200, cellTemplate: "<div class=\"ui-grid-row-header-cell ui-grid-disable-selection\"><div class=\"ui-grid-cell-contents\">{{row.entity['rowHeader']}}</div></div>"} );
}
};
}]);