DataTable使用方式如下
<DataTable
{...this.tableDefin}
loading={this.state.isTableFetching}
singleChecked={this.props.singleChecked}
onSelect={this.handleDataRowChecked.bind(this)}
selectedData={this.props.resultsData}
reloadData={this.reloadDataTable.bind(this)}
onCrossPageSelectChanged={this.handleDataTableCrossPageSelect.bind(this)}
tableSize={this.props.stretch ? 'stretch' : 'Auto'}
tableContainer={this.props.tableContainer || dataGrid.parentElement}
containerHeight={this.props.containerHeight}
containerWidth={this.props.containerWidth}
mainObjectContext={this.props.mainObjectContext || null}
ext_genColDef={this.genCustomColDef}
ext_getColumns={this.genCustomColumns}
/>
属性说明
属性 | 说明 | 类型 | 默认值 |
---|
loading | table组件loading状态 | bool | false |
singleChecked | table是否是单选 | bool | false |
selectedData | table默认选中数据的ids | array | [] |
onSelect | table行选中之后的回调函数,selectedItems:table选中行的所有数据,与metadata中的biz_data中行记录结构一致,outsideSelectedIds是selectedData的子集,排除了table操作过程中取消选中的那部分selectedData的数据 | function (selectedItems, outsideSelectedIds) {} | - |
reloadData | 重新加载table列表数据 | function (tableMetaData, reloadReson) {} | [] |
onCrossPageSelectChanged | table跨页全选点击回调 | function (isActive) {} | bool |
tableSize | table组件的渲染的模式,stretch: 自动充满父容器,滚动条在table内部。Auto: table根据自身高度渲染,滚动条出现在外部 | string | Auto |
tableContainer | 配置tableSize为stretch的时候使用,父容器的DOM | DOM | table组件所在的parentElement |
containerHeight | 给table一个计算好的显式高度 | int | - |
containerWidth | 给table一个计算好的显式宽度 | int | - |
ext_genColDef | 重写某个列 | function (colData, index, column) {} | - |
ext_getColumns | 重写列(拿到所有的列) | function (columns) {} | - |
自定义列渲染
let column = {
key: string,
name: string,
title: string,
sortable: bool,
visible: bool,
fixed: bool,
fixedWidth: colData.width ? +colData.width < 40 ? 40 : +colData.width : null
};
column.render = (v, data, cellProps) => {
console.log(v,data,cellProps);
return (<div>自定义列渲染</div>);
}