Angular UI-grid 过滤 header 单元格样式?
Angular UI-grid filter header cell style?
我正在工作 Angular UI-Grid,并且完全使用过滤。所有功能都正常,现在我正在设计样式。
我想要实现的是而不是这个视图
我想得到这个视图
如您所见,我只想在一行中制作范围过滤器。我在互联网上的所有搜索都失败了。我找到了一些关于日期选择器范围的信息,但我相信它应该更简单,只需在一列中添加一些 css 规则。
我可以通过 cellClass
影响行,并且我尝试以相同的方式通过 headerCellClass
进行影响,但它不起作用。是否可以在不创建任何自定义模板的情况下影响此 header?
提前致谢。
我的专栏定义:
$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 您可以找到我的问题的地方
我找到了影响它的方法,我添加了自定义 class 并且通过这个 class 我可以影响内部元素。这是我的工作代码。
$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;
}
}
我正在工作 Angular UI-Grid,并且完全使用过滤。所有功能都正常,现在我正在设计样式。
我想要实现的是而不是这个视图
我想得到这个视图
如您所见,我只想在一行中制作范围过滤器。我在互联网上的所有搜索都失败了。我找到了一些关于日期选择器范围的信息,但我相信它应该更简单,只需在一列中添加一些 css 规则。
我可以通过 cellClass
影响行,并且我尝试以相同的方式通过 headerCellClass
进行影响,但它不起作用。是否可以在不创建任何自定义模板的情况下影响此 header?
提前致谢。
我的专栏定义:
$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 您可以找到我的问题的地方
我找到了影响它的方法,我添加了自定义 class 并且通过这个 class 我可以影响内部元素。这是我的工作代码。
$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;
}
}