您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹antd中實現table展開行默認展示的方法,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在table中配置
<Table expandedRowKeys={this.store.chargeTableData.map(item => item.key)} //展開的行 expandIconAsCell={false} expandIconColumnIndex={-1} bordered //展示邊框 defaultExpandAllRows={true} //初始時展開所有行 pagination={{ pageSize: 5 }} //分頁器 expandedRowRender={this.expandedRowRender} //額外展開的行 columns={columns} //數據 dataSource={this.store.chargeTableData} //數據數組 />
補充知識:antd Table 利用自己生成cell結合expandedRowKeys配置,實現任意cell控制展開列
因為項目需要,antd實現一個形如這樣的表格
但是奈何翻了好幾遍api文檔并沒有發現這樣的東西,只好自己改造了,
首先table是這樣的
<Table columns={this.columns} dataSource={tableData} bordered pagination={false} size='small' expandIconAsCell={false} expandIconColumnIndex={-1} expandedRowRender={record=>this.expandedRowTable(record)} expandedRowKeys={this.state.expandArray} />
實現了隱藏自帶按鈕、并確定了控制展開行的數組,
接下來就是控制數組了,
先綁定下方法
onClick={()=>this.expandTable(row)}
然后 是點擊cell的方法
expandTable = row =>{ const filtered = this.state.expandArray const text = this.state.expandBtnText if(this.state.expandArray.includes(row.key)){ filtered.splice(filtered.findIndex(element => element === row.key),1 ); this.expandTdNum(parseInt(row.key,10),'reduce') text[parseInt(row.key,10)-1] = '詳情' }else{ filtered.push(row.key) this.expandTdNum(parseInt(row.key,10),'add') text[parseInt(row.key,10)-1] = '關閉' } this.setState({ expandArray:filtered, })
最后控制數組的方法
expandTdNum = (key,operation) =>{ let temp = 0 if(operation==='add'){ temp++ }else if(operation==='reduce'){ temp-- }else{ return false } if(key>0 && key<7){ this.setState({ firstTdNum:this.state.firstTdNum + temp, }) }else if(key>6 && key<10){ this.setState({ middleTdNum:this.state.middleTdNum + temp, }) }else if(key>9 && key<13){ this.setState({ lastTdNum:this.state.lastTdNum + temp, }) } }
關于antd中實現table展開行默認展示的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。