如何更改Kendo React中明细行的明细展开/折叠列的标题?

时间:2019-05-02 16:59:45

标签: reactjs kendo-ui header customization details

我需要在折叠/展开列的标题中添加文本“ +/-”,以了解kendo react中的详细信息行。我还想添加和事件,以便当用户单击该列时,它会展开或折叠所有行。我使用this创建了详细信息行。

This image shows better what i want to change

2 个答案:

答案 0 :(得分:0)

请查看此代码段,其中添加了网格标签和onclick函数。 我还没有弄清楚的部分是切换展开/折叠。 我也遇到了此属性expandField,但是我不知道如何使用它。

class DetailComponent extends GridDetailRow {
    render() {
        const dataItem = this.props.dataItem;
        return (
            <section>
                <p><strong>In Stock:</strong> {dataItem.UnitsInStock} units</p>
                <p><strong>On Order:</strong> {dataItem.UnitsOnOrder} units</p>
                <p><strong>Reorder Level:</strong> {dataItem.ReorderLevel} units</p>
                <p><strong>Discontinued:</strong> {dataItem.Discontinued}</p>
                <p><strong>Category:</strong> {dataItem.Category.CategoryName} - {dataItem.Category.Description}</p>
            </section>
        );
    }
}

class App extends React.Component {
    state = {
        data: products.slice(0)
    }

    expandChange = (event) => {
        event.dataItem.expanded = !event.dataItem.expanded;
        this.forceUpdate();
    }

    render() {
        return (
            <Grid
                data={this.state.data}
                detail={DetailComponent}
                style={{ height: '400px' }}
                expandField="expanded"
                onExpandChange={this.expandChange}
            >
                <Column field="ProductName" title="Product" width="300px" />
                <Column field="ProductID" title="ID" width="50px" />
                <Column field="UnitPrice" title="Unit Price" width="100px" />
                <Column field="QuantityPerUnit" title="Qty Per Unit" />
            </Grid>            
        );
    }
}

class ShowAlert extends React.Component {
  showAlert() {
    alert("Im an alert");
  }

  render() {
    return <a className='k-link' onClick={this.showAlert}>+/-</a>;
  }
}

export default ShowAlert;

ReactDOM.render(
    <App />,
    document.querySelector('my-app')
);

const heirarchyElement = document.getElementsByClassName("k-hierarchy-cell")[0];
ReactDOM.render(<ShowAlert />, heirarchyElement);

答案 1 :(得分:0)

更新:

Telerik为此提供了答案:https://stackblitz.com/edit/react-abh1id?file=app/main.jsx

原文:

我已经调试了kendo-react库,不可能实现。我已经为kendo React https://feedback.telerik.com/kendo-react-ui/1408002-change-header-detail-rows

打开了功能请求