欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ag-Grid Columns

程序员文章站 2022-04-08 16:48:11
...

Columns定义

React中声明式定义

<AgGridReact
	rowSelection="multiple"
	rowData={rowData}
>
	<AgGridColumn field="make" sortable={true} filter={true} checkboxSelection={true}></AgGridColumn>
	<AgGridColumn field="model" filter={true}></AgGridColumn>
	<AgGridColumn field="price" sortable={true}></AgGridColumn>
</AgGridReact>

通过gridOptions定义列

const [gridOptions, setGridOptions] = useState({
	columnDefs: [
		{
			field: 'make',
			headerName: "Make"
		},
		{
			field: 'model',
			headerName: "Model",
			filter: true
		},
		{
			field: 'price',
			headerName: "Price",
			sortable: true
		}
	]
}, [])
<AgGridReact gridOptions={gridOptions} rowData={rowData}></AgGridReact>

通过columnDefs定义列

const [columnDefs, setColumnDefs] = useState([
	{
		field: 'make',
		headerName: "Make"
	},
	{
		field: 'model',
		headerName: "Model",
		filter: true
	},
	{
		field: 'price',
		headerName: "Price",
		sortable: true
	}
], [])
<AgGridReact columnDefs={gridOptions.columnDefs} rowData={rowData}></AgGridReact>

Columns更新

添加删除列

  • 通过更新提供给grid的“列定义”列表,可以添加和删除列。
  • 更新后如果原有的列仍存在,那么保留用于该列的任何状态(如排序,过滤器,宽度,列位置)。
const deleCol = () => {
	setGridOptions({
		columnDefs: [
			{
				field: 'make',
				headerName: "Make"
			},
			{
				field: 'price',
				headerName: "Price",
				sortable: true
			}
		]
	})
}

更新列定义

  • 列定义的所有属性都可以更新,如headerName
  • 不能单独更新一列的“列定义”,要应用一组新的列定义。
  • 只要设置了新列,标题就会刷新。但是单元格不会刷新,因此需要调用 api.refreshCells({force: true})强制刷新。
  • 对“列定义”进行更新之前,“列”的任何大小调整,重新排序,排序等均保持不变。

更新列状态

  • 列属性的值就是状态信息,只更新列状态而不是列定义的其他部分,可以考虑使用列状态API
  • 使用初始属性列定义创建grid后使用网格UI交互产生变化(比如列排序),再次使用初始属性列定义不会有任何变化
  • 删除列后,使用初始属性列定义会恢复默认状态
  • 使用初始属性列定义创建grid后使用网格UI交互产生变化(比如列排序),“使用State设置列”,则列的状态将更改,并且通过UI所做的更改将丢失。
//列定义
const [columns, setColumns] = useState(columnsWithState);
// 使用State更新列
const newColumns = [...columnsWithState];
newColumns[0]['dirty'] = new Date().getMilliseconds();
setColumns(newColumns);
有状态属性 初始属性 描述
width initialWidth 列的宽度
flex initialFlex 用于设置此列宽度的flex值
hide initialHide 是否应隐藏此列
pinned initialPinned 是否应固定此列
sort initialSort 应用于此列的排序
sortIndex initialSortIndex 应用排序的顺序(如果是多列排序
rowGroup initialRowGroup 此列是否应为行组
rowGroupIndex initialRowGroupIndex 此列是否应为行组以及按什么顺序
pivot initialPivot 如果此列应该是枢轴
pivotIndex initialPivotIndex 此列是否应该成为枢轴,以什么顺序排列
aggFunc initialAggFunc 通过行分组或数据透视来聚合此列的函数

空值与未定义

  • 将有状态属性设置为undefined网格时,将忽略该属性。
  • 将有状态属性设置为null网格时,将清除该属性。
  • 如果您不想破坏任何列状态,则不要设置状态属性,因为默认情况下为undefined。
    例如,该设置pinned=null将清除固定在列上的固定,而 pinned=undefined意味着网格将保留该列的固定状态
相关标签: datagrid