Angular UI-grid过滤器标题单元格样式?

时间:2016-10-14 18:38:01

标签: javascript css angularjs angular-ui-grid

我正在使用Angular UI-Grid,并完全使用过滤功能。所有功能都运行正常,现在我正在进行样式设计。

我想要实现的不是这种观点 enter image description here

我想得到这个观点 enter image description here

因此,您可以看到我只想在一行中进行范围过滤。我在互联网上的所有搜索都失败了。我找到了日期选择器范围的某种信息,但我相信它应该更简单,只需在一列中添加一些css规则。

我可以通过cellClass对行进行影响,但我试图通过headerCellClass以同样的方式影响,但它不起作用。是否可以在不创建任何自定义模板的情况下影响此标题? 提前谢谢。

我的专栏定义:

  $scope.gridOptions.columnDefs = [
        {
            displayName: 'Name',
            field: 'name',
            width: '20%',
            cellClass: getCellClass
        },
        {
            field: 'description',
            width: '30%',
            cellClass: getCellClass
        },
        {
            field: 'strict',
            filter: {
                type: uiGridConstants.filter.SELECT,
                selectOptions: [
                    {value: true, label: 'strict'},
                    {value: false, label: 'non-strict'}
                ]
            },
            cellClass: getCellClass
        },
        {
            displayName: 'Length',
            field: 'maxSize',
            filters: [
                {
                    name: 'From',
                    condition: uiGridConstants.filter.GREATER_THAN_OR_EQUAL,
                    placeholder: "from"
                },
                {
                    name: 'To',
                    condition: uiGridConstants.filter.LESS_THAN_OR_EQUAL,
                    placeholder: "to"

                }
            ],
            headerCellClass: $scope.highlightFilteredHeader,
            cellClass: getCellClass
        },
        {
            field: 'Actions',
            cellClass: getCellClass,
            cellTemplate: "includes/grid/columnAction.html"
        }
    ];


  $scope.highlightFilteredHeader = function (row, rowRenderIndex, col, colRenderIndex) {
                return 'ui-grid-header-custom';
        };

这是plunker,您可以在那里找到我的问题

1 个答案:

答案 0 :(得分:0)

我已经找到了影响它的方法,我已经添加了自定义类,并通过这个类我可以影响内部元素。这是我的工作代码。

$scope.highlightFilteredHeader = function (row, rowRenderIndex, col, colRenderIndex) {

        if (col.displayName == 'Length') {
            return 'inline-filter';
        } else if (col.filters[0].term) {
            return 'header-filtered';
        } else {
            return ''
        }
    };

CSS

    .inline-filter .ui-grid-filter-input-0{
    width: 40% !important;
    float: left;
    margin-left: 10px !important;
}
.inline-filter .ui-grid-filter-input-1{
    width: 40% !important;
    float: left;
    margin-top: -8px !important;
    margin-left: 5px !important;
}
.inline-filter .ui-grid-filter-container .ui-grid-filter-button {
    top: 15px !important;
}
@media only screen and (max-width: 750px) {
    .inline-filter .ui-grid-filter-input-0{
        margin-left: 0 !important;
    }
}