Angular 2 个 NG 网格流体柱
Angular 2 NG Grid Fluid Columns
是否有可能有一个网格,其中列的宽度不是明确基于像素的?这在与 sizeColumnsToFit()
.
结合使用时特别有用
例如,在下面的 table 中,视觉设计可能要求 ID 和名称字段刚好适合内容,然后让描述填充包含元素的其余宽度。
| ID | Name | Description |
|----|-------|----------------|
| 1 | Foo | Something foo |
| 2 | Bar | Something bar |
目前,使用 sizeColumnsToFit()
使它们的宽度都相同(所以是 tableWidth / 3
之类的东西)。
您可以在列定义中使用网格的宽度 属性,并将其绑定到可以 return 宽度百分比的函数。
width: this.columnWidth(windowWidth, 10)
private columnWidth(windowWidth:number, columnSize:number) {
return Math.floor((windowWidth * columnSize) / 100);
}
尽管在我的建议中您仍然需要提供宽度,但它确实允许容纳更大 "dynamic" 的宽度。
首先,为您想要的列设置宽度 smaller/fixed:
var columnDefs = [
{
headerName: "Column 1",
field: "col1",
width:20
},
挂钩到 gridReady 事件以调整剩余列的大小(不会设置宽度):
$scope.gridOptions = {
columnDefs: columnDefs,
rowData: rowData,
onGridReady: () => {
$scope.gridOptions.api.sizeColumnsToFit();
}
...other properties
是否有可能有一个网格,其中列的宽度不是明确基于像素的?这在与 sizeColumnsToFit()
.
例如,在下面的 table 中,视觉设计可能要求 ID 和名称字段刚好适合内容,然后让描述填充包含元素的其余宽度。
| ID | Name | Description |
|----|-------|----------------|
| 1 | Foo | Something foo |
| 2 | Bar | Something bar |
目前,使用 sizeColumnsToFit()
使它们的宽度都相同(所以是 tableWidth / 3
之类的东西)。
您可以在列定义中使用网格的宽度 属性,并将其绑定到可以 return 宽度百分比的函数。
width: this.columnWidth(windowWidth, 10)
private columnWidth(windowWidth:number, columnSize:number) {
return Math.floor((windowWidth * columnSize) / 100);
}
尽管在我的建议中您仍然需要提供宽度,但它确实允许容纳更大 "dynamic" 的宽度。
首先,为您想要的列设置宽度 smaller/fixed:
var columnDefs = [
{
headerName: "Column 1",
field: "col1",
width:20
},
挂钩到 gridReady 事件以调整剩余列的大小(不会设置宽度):
$scope.gridOptions = {
columnDefs: columnDefs,
rowData: rowData,
onGridReady: () => {
$scope.gridOptions.api.sizeColumnsToFit();
}
...other properties