您可以手动修改标题,在网格呈现后使用Java脚本添加HTML元素,这不是一个很好的解决方案,但它会在等待正式解决方案时完成这项工作。
以下是我所做的:
class Table extends React.Component {
constructor(props) {
super(props);
this.gridRef = React.createRef();
}
render() {
return (
<div ref={this.gridRef} >
<Grid
data={data}
onItemChange={itemChange}
cellRender={cellRender}
rowRender={rowRender}
editField="inEdit"
>
<GridToolbar>
</GridToolbar>
<Column title="Column Name" field="ProductName" width={300} locked={true}/>
<Column field="ProductID" title="Id" editable={false} />
<Column title="Units In Stock" editor="numeric" field="UnitsInStock" />
<Column title="First Ordered" editor="date" format="{0:d}" field="FirstOrderedOn" />
<Column editor="boolean" field="Discontinued" />
<Column title="Units In Stock" editor="numeric" field="UnitsInStock" />
<Column title="First Ordered" editor="date" format="{0:d}" field="FirstOrderedOn" />
<Column editor="boolean" field="Discontinued" />
</Grid>
</div>
);
}
componentDidMount(){
var ths = this.gridRef.current.getElementsByTagName('th');
for(var i = 0; i < ths.length; i++){
ths[i].appendChild( this.createColumnMenuIcon() );
}
}
createColumnMenuIcon(){
var icon = document.createElement('i');
icon.classList.add('fa');
icon.classList.add('fa-chevron-down');
icon.setAttribute("style", "position: absolute;top: 12px;right: 10px;");
icon.addEventListener('click', function(){
console.log('Click Menu');
})
return icon;
}
}
export default Table