{"meta":"<h2 id=\"Guide\">Guide <a class=\"header-anchor scroll-count-item\" href=\"#Guide\" data-scroll-id=\"Guide\">#</a></h2>\n<p>Table are responsible for presenting data as highly customizable and accessible HTML table whose core function is to present structured data in a tabular manner. Then you can use various parameters to add some features to the table, such as sorting, filtering, scrolling, lock columns, and so on.</p>\n<h3 id=\"Basic Usage\">Basic Usage <a class=\"header-anchor scroll-count-item\" href=\"#Basic Usage\" data-scroll-id=\"Basic Usage\">#</a></h3>\n<p>The basic Table contains rows and columns, use Table.Column to define the column, use the dataSource property passed to create rows.</p>\n<p>The following code will create a two-column data table:</p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> Table <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">&apos;@alifd/next&apos;</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> dataSource <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span><span class=\"token literal-property property\">id</span><span class=\"token operator\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">time</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;2016&apos;</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>Table dataSource<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>dataSource<span class=\"token punctuation\">}</span><span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>Column title<span class=\"token operator\">=</span><span class=\"token string\">&quot;Id&quot;</span> dataIndex<span class=\"token operator\">=</span><span class=\"token string\">&quot;id&quot;</span><span class=\"token operator\">/</span><span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>Column title<span class=\"token operator\">=</span><span class=\"token string\">&quot;Time&quot;</span> dataIndex<span class=\"token operator\">=</span><span class=\"token string\">&quot;time&quot;</span><span class=\"token operator\">/</span><span class=\"token operator\">&gt;</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Table<span class=\"token operator\">&gt;</span><span class=\"token punctuation\">,</span> mountNode<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<h4>Column Configuration</h4>\n<p>Table.Column provides a lot of configuration properties for custom columns, the most common is the use of <code>cell</code> custom cell rendering. Other configurations can refer to the following Table.Column API.</p>\n<p>The following code will make cells render different views based on values:</p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> Table <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">&apos;@alifd/next&apos;</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> dataSource <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span><span class=\"token literal-property property\">id</span><span class=\"token operator\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">time</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;2016&apos;</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">renderTime</span> <span class=\"token operator\">=</span> <span class=\"token parameter\">value</span> <span class=\"token operator\">=&gt;</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>value <span class=\"token operator\">===</span> <span class=\"token string\">&apos;2016&apos;</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">return</span> <span class=\"token string\">&apos;this year&apos;</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token keyword\">return</span> value<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\nReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>Table dataSource<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>dataSource<span class=\"token punctuation\">}</span><span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>Column title<span class=\"token operator\">=</span><span class=\"token string\">&quot;Id&quot;</span> dataIndex<span class=\"token operator\">=</span><span class=\"token string\">&quot;id&quot;</span><span class=\"token operator\">/</span><span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>Column title<span class=\"token operator\">=</span><span class=\"token string\">&quot;Time&quot;</span> dataIndex<span class=\"token operator\">=</span><span class=\"token string\">&quot;time&quot;</span> cell<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>renderTime<span class=\"token punctuation\">}</span><span class=\"token operator\">/</span><span class=\"token operator\">&gt;</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Table<span class=\"token operator\">&gt;</span><span class=\"token punctuation\">,</span> mountNode<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<h4>Multiple Table Header</h4>\n<p>Use Table.ColumnGroup to wrap Table.Column to create a table with multiple headers:</p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> Table <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">&apos;@alifd/next&apos;</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> dataSource <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span><span class=\"token literal-property property\">id</span><span class=\"token operator\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">time</span><span class=\"token operator\">:</span> <span class=\"token string\">&apos;2016&apos;</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>Table dataSource<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>dataSource<span class=\"token punctuation\">}</span><span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>ColumnGroup<span class=\"token operator\">&gt;</span>\n            <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>Column title<span class=\"token operator\">=</span><span class=\"token string\">&quot;Id&quot;</span> dataIndex<span class=\"token operator\">=</span><span class=\"token string\">&quot;id&quot;</span><span class=\"token operator\">/</span><span class=\"token operator\">&gt;</span>\n            <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>Column title<span class=\"token operator\">=</span><span class=\"token string\">&quot;Time&quot;</span> dataIndex<span class=\"token operator\">=</span><span class=\"token string\">&quot;time&quot;</span><span class=\"token operator\">/</span><span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Table<span class=\"token punctuation\">.</span>ColumnGroup<span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>ColumnGroup<span class=\"token operator\">&gt;</span>\n            <span class=\"token operator\">&lt;</span>Table<span class=\"token punctuation\">.</span>Column title<span class=\"token operator\">=</span><span class=\"token string\">&quot;Id&quot;</span> dataIndex<span class=\"token operator\">=</span><span class=\"token string\">&quot;id&quot;</span><span class=\"token operator\">/</span><span class=\"token operator\">&gt;</span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Table<span class=\"token punctuation\">.</span>ColumnGroup<span class=\"token operator\">&gt;</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Table<span class=\"token operator\">&gt;</span><span class=\"token punctuation\">,</span> mountNode<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<h3 id=\"Know Issues\">Know Issues <a class=\"header-anchor scroll-count-item\" href=\"#Know Issues\" data-scroll-id=\"Know Issues\">#</a></h3>\n<h4>Group Table does not support displaying background color in hover state and selected state, unable to merge cells</h4>\n<h4>Table can not merge cell if enable locking column</h4>\n","api":"<h2 id=\"API\">API <a class=\"header-anchor scroll-count-item\" href=\"#API\" data-scroll-id=\"API\">#</a></h2>\n<h3 id=\"Table\">Table <a class=\"header-anchor scroll-count-item\" href=\"#Table\" data-scroll-id=\"Table\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Descripiton</th>\n<th>Type</th>\n<th>Default Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>tableLayout</td>\n<td>table-layout attribute of table element<br><br><strong>options</strong>:<br>&apos;fixed&apos;, &apos;auto&apos;</td>\n<td>Enum</td>\n<td>-</td>\n</tr>\n<tr>\n<td>tableWidth</td>\n<td>totoal width of table</td>\n<td>Number</td>\n<td>-</td>\n</tr>\n<tr>\n<td>dataSource</td>\n<td>data source shown in the table</td>\n<td>Array</td>\n<td>[]</td>\n</tr>\n<tr>\n<td>onRowClick</td>\n<td>callback triggered when click each row<br><br><strong>signatures</strong>:<br>Function(record: Object, index: Number, e: Event) =&gt; void<br><strong>params</strong>:<br><em>record</em>: {Object} the data corresponding to the row<br><em>index</em>: {Number} the index corresponding to the row<br><em>e</em>: {Event} event object</td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>onRowMouseEnter</td>\n<td>callback triggered when mouse enter each row<br><br><strong>signatures</strong>:<br>Function(record: Object, index: Number, e: Event) =&gt; void<br><strong>params</strong>:<br><em>record</em>: {Object} the data corresponding to the row<br><em>index</em>: {Number} the index corresponding to the row<br><em>e</em>: {Event} event object</td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>onRowMouseLeave</td>\n<td>callback triggered when mouse leave each row<br><br><strong>signatures</strong>:<br>Function(record: Object, index: Number, e: Event) =&gt; void<br><strong>params</strong>:<br><em>record</em>: {Object} the data corresponding to the row<br><em>index</em>: {Number} the index corresponding to the row<br><em>e</em>: {Event} event object</td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>onSort</td>\n<td>callback triggered when sort<br><br><strong>signatures</strong>:<br>Function(dataIndex: String, order: String) =&gt; void<br><strong>params</strong>:<br><em>dataIndex</em>: {String} the specified sorted field<br><em>order</em>: {String} order, whether is &apos;desc&apos; or &apos;asc&apos;</td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>onFilter</td>\n<td>callback triggered when click filter confirmation button<br><br><strong>signatures</strong>:<br>Function(filterParams: Object) =&gt; void<br><strong>params</strong>:<br><em>filterParams</em>: {Object} filter params</td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>onResizeChange</td>\n<td>callback triggered when resize column<br><br><strong>signatures</strong>:<br>Function(dataIndex: String, value: Number) =&gt; void<br><strong>params</strong>:<br><em>dataIndex</em>: {String} the specify resize field<br><em>value</em>: {Number} column width variation</td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>rowProps</td>\n<td>get the properties of row, the return value will not work if it is in conflict with other properties<br><br><strong>signatures</strong>:<br>Function(record: Object, index: Number) =&gt; Object<br><strong>params</strong>:<br><em>record</em>: {Object} the data corresponding to the row<br><em>index</em>: {Number} the index corresponding to the row<br><strong>returns</strong>:<br>{Object} properties of Row<br></td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>getCellProps</td>\n<td>get the properties of cell, through which you can merge cells<br><br><strong>signatures</strong>:<br>Function(rowIndex: Number, colIndex: Number, dataIndex: String, record: Object) =&gt; Object<br><strong>params</strong>:<br><em>rowIndex</em>: {Number} the index corresponding to the row<br><em>colIndex</em>: {Number} the index corresponding to the column<br><em>dataIndex</em>: {String} the field corresponding to the column<br><em>record</em>: {Object} the record corresponding to the row<br><strong>returns</strong>:<br>{Object} properties of td<br></td>\n<td>Function</td>\n<td>() =&gt; { }</td>\n</tr>\n<tr>\n<td>hasBorder</td>\n<td>whether the table has a border</td>\n<td>Boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>hasHeader</td>\n<td>whether the table has header</td>\n<td>Boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>isZebra</td>\n<td>whether the table has zebra style</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>loading</td>\n<td>whether data is loading</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>loadingComponent</td>\n<td>customized Loading component <br><br><strong>signatures</strong>:<br>(props: LoadingProps) =&gt; React.ReactNode</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>filterParams</td>\n<td>currently filtered keys, use this property to control which menu in the table&apos;s header filtering options is selected, in the format {dataIndex: {selectedKeys:[]}}<br> Example: <br> Suppose you want to control dataIndex as Select <br>&lt;Table filterParams={{id: {selectedKeys: [&apos;one&apos;]}}}/&gt; for the menu item whose key is one in the filtering menu of the id column.</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>sort</td>\n<td>the currently sorted field, use this property to control the sorting of the table&apos;s fields in the format {dataIndex: &apos;asc&apos;}</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>sortIcons</td>\n<td>customize sortIcons, to set top and bottom layout e.g.<code>{desc: &lt;Icon style={{top: &apos;6px&apos;, left: &apos;4px&apos;}} type={&apos;arrow-down&apos;} size=&quot;small&quot; /&gt;, asc: &lt;Icon style={{top: &apos;-6px&apos;, left: &apos;4px&apos;}} type={&apos;arrow-up&apos;} size=&quot;small&quot; /&gt;}</code></td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>columns</td>\n<td>equals to Table.Column, but Table.Column has a higher priority</td>\n<td>Array</td>\n<td>-</td>\n</tr>\n<tr>\n<td>emptyContent</td>\n<td>content when the table is empty</td>\n<td>ReactNode</td>\n<td>-</td>\n</tr>\n<tr>\n<td>primaryKey</td>\n<td>the primary key of data in the dataSource, if the attribute in the given data source does not contain the primary key, it will cause selecting all</td>\n<td>String</td>\n<td>&apos;id&apos;</td>\n</tr>\n<tr>\n<td>expandedRowRender</td>\n<td>rendering function for expanded row<br><br><strong>signatures</strong>:<br>Function(record: Object, index: Number) =&gt; Element<br><strong>params</strong>:<br><em>record</em>: {Object} the record corresponding to the row<br><em>index</em>: {Number} the index corresponding to the row<br><strong>returns</strong>:<br>{Element} render content<br></td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rowExpandable</td>\n<td>row can expand or not<br><br><strong>signatures</strong>:<br>Function(record: Object, index: Number) =&gt; Boolean<br><strong>params</strong>:<br><em>record</em>: {Object} the record corresponding to the row<br><em>index</em>: {Number} the index corresponding to the row<br><strong>returns</strong>:<br>{Boolean} expandable<br></td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>expandedRowIndent</td>\n<td>indent of expanded row</td>\n<td>Array</td>\n<td>-</td>\n</tr>\n<tr>\n<td>openRowKeys</td>\n<td>(under control)keys of expanded row, usually used with onRowOpen</td>\n<td>Array</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onRowOpen</td>\n<td>callback triggered when expand row<br><br><strong>signatures</strong>:<br>Function(openRowKeys: Array, currentRowKey: String, expanded: Boolean, currentRecord: Object) =&gt; void<br><strong>params</strong>:<br><em>openRowKeys</em>: {Array} key of expanded row<br><em>currentRowKey</em>: {String} key of current clicked row<br><em>expanded</em>: {Boolean} whether is expanded<br><em>currentRecord</em>: {Object} the data corresponding to the current clicked row</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>hasExpandedRowCtrl</td>\n<td>whether to show the + button that clicks to expand additional row</td>\n<td>Boolean</td>\n<td>-</td>\n</tr>\n<tr>\n<td>getExpandedColProps</td>\n<td>get properties of expanded row<br><br><strong>signatures</strong>:<br><code>(record: any, index: number) =&gt; object | Record&lt;string | number, any&gt;</code></td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>fixedHeader</td>\n<td>whether the table header is fixed, this property is used with maxBodyHeight. When the height of the content area exceeds maxBodyHeight, a scroll bar appears in the content area.</td>\n<td>Boolean</td>\n<td>-</td>\n</tr>\n<tr>\n<td>maxBodyHeight</td>\n<td>the height of the largest content area, when <code>fixedHeader</code> is <code>true</code>, scroll bars will appear above this height</td>\n<td>Number/String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>rowSelection</td>\n<td>whether to enable selection mode <br><br><strong>properties</strong>:<br><em>getProps</em>: {Function} <code>Function(record, index)=&gt;Object</code> get default attributes of selection<br><em>onChange</em>: {Function} <code>Function(selectedRowKeys:Array, records:Array)</code> callback triggered when selection change, <strong>Note:</strong> where records only contains the data of the current dataSource, it is likely to be less than the length of the selectedRowKeys.<br><em>onSelect</em>: {Function} <code>Function(selected:Boolean, record:Object, records:Array)</code> callback triggered when user select<br><em>onSelectAll</em>: {Function} <code>Function(selected:Boolean, records:Array)</code> callback triggered when user select all<br><em>selectedRowKeys</em>: {Array} if this property is set, the rowSelection is controlled, and the received value is the value of the primaryKey of the row&apos;s data.<br><em>mode</em>: {String} the mode of selection, the optional value is <code>single</code>, <code>multiple</code>, the default is <code>multiple</code><br><em>columnProps</em>: {Function} <code>Function()=&gt;Object</code> props of checkbox columns which inherit from <code>Table.Column</code><br><em>titleProps</em>: {Function} <code>Function()=&gt;Object</code> props of checkbox columns header, works only in <code>multiple</code> mode <br><em>titleAddons</em>: {Function} <code>Function()=&gt;Node</code> element added to checkbox columns header, works in both <code>single</code> and <code>multiple</code> mode</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>stickyHeader</td>\n<td>whether the table header is sticky</td>\n<td>Boolean</td>\n<td>-</td>\n</tr>\n<tr>\n<td>offsetTop</td>\n<td>affix triggered after the distance top reaches the specified offset</td>\n<td>Number</td>\n<td>-</td>\n</tr>\n<tr>\n<td>affixProps</td>\n<td>properties of Affix</td>\n<td>Object</td>\n<td>-</td>\n</tr>\n<tr>\n<td>indent</td>\n<td>indented in tree mode, work only when isTree is true</td>\n<td>Number</td>\n<td>-</td>\n</tr>\n<tr>\n<td>isTree</td>\n<td>enable the tree mode of Table, the received data format contains children and renders it into a tree table.</td>\n<td>Boolean</td>\n<td>-</td>\n</tr>\n<tr>\n<td>useVirtual</td>\n<td>whether use virtual scroll</td>\n<td>Boolean</td>\n<td>-</td>\n</tr>\n<tr>\n<td>onBodyScroll</td>\n<td>callback triggered when body scroll<br><br><strong>signatures</strong>:<br>Function(start: Number) =&gt; void<br><strong>properties</strong>:<br>start:{Number} The current number of lines scrolled to</td>\n<td>Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>crossline</td>\n<td>show corssline when hover&#xFF0C;which is suitable for the scene where the header is complex and needs to be classified</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Table Column\">Table.Column <a class=\"header-anchor scroll-count-item\" href=\"#Table Column\" data-scroll-id=\"Table Column\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Description</th>\n<th>Type</th>\n<th>Default Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dataIndex</td>\n<td>specify the column corresponding field, support the fast value of <code>a.b</code> format</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>cell</td>\n<td>cell rendering logic<br>Function(value, index, record) =&gt; Element</td>\n<td>ReactElement/ReactNode/Function</td>\n<td>(value) =&gt; value</td>\n</tr>\n<tr>\n<td>title</td>\n<td>content of table header</td>\n<td>ReactElement/ReactNode/Function</td>\n<td>-</td>\n</tr>\n<tr>\n<td>htmlTitle</td>\n<td>the props of title, which will be writen on header cells&apos; dom</td>\n<td>String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>sortable</td>\n<td>whether to support sorting</td>\n<td>Boolean</td>\n<td>-</td>\n</tr>\n<tr>\n<td>width</td>\n<td>width of column&#xFF0C;width needs to be set in lock style</td>\n<td>Number/String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>align</td>\n<td>alignment of cell<br><br><strong>options</strong>:<br>&apos;left&apos;, &apos;center&apos;, &apos;right&apos;</td>\n<td>Enum</td>\n<td>-</td>\n</tr>\n<tr>\n<td>alignHeader</td>\n<td>alignment of header cell, value of align by default<br><br><strong>options</strong>:<br>&apos;left&apos;, &apos;center&apos;, &apos;right&apos;</td>\n<td>Enum</td>\n<td>-</td>\n</tr>\n<tr>\n<td>filters</td>\n<td>generates a title filter menu in the format <code>[{label:&apos;xxx&apos;, value:&apos;xxx&apos;}]</code></td>\n<td>Array&lt;Object&gt;</td>\n<td>-</td>\n</tr>\n<tr>\n<td>filterMode</td>\n<td>whether the filtering mode is single or multiple selection<br><br><strong>options</strong>:<br>&apos;single&apos;, &apos;multiple&apos;</td>\n<td>Enum</td>\n<td>&apos;multiple&apos;</td>\n</tr>\n<tr>\n<td>filterMenuProps</td>\n<td>the props passed to Menu in filter mode, extend <code>Menu</code>&apos;s API <br><br><strong>options</strong>:<br><em>subMenuSelectable</em>: {Boolean} default <code>false</code> subMenu can be selected or not<br><em>isSelectIconRight</em>: {Boolean} default <code>false</code> select icon in right or not. (icon on SubMenu always in left)</td>\n<td>Object</td>\n<td>{     subMenuSelectable: false }</td>\n</tr>\n<tr>\n<td>lock</td>\n<td>whether the lock column is supported, the options are <code>left</code>, <code>right</code>, <code>true</code></td>\n<td>Boolean/String</td>\n<td>-</td>\n</tr>\n<tr>\n<td>resizable</td>\n<td>whether to support column resizing, when this value is set to true, the layout of the table will be modified to fixed</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>asyncResizable</td>\n<td>whether to support async column resizing, when this value is set to true, the layout of the table will be modified to fixed</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>colSpan</td>\n<td>theader can merge cell by this API, 0 means no th of this column</td>\n<td>Number</td>\n<td>-</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Table Column Group\">Table.ColumnGroup <a class=\"header-anchor scroll-count-item\" href=\"#Table Column Group\" data-scroll-id=\"Table Column Group\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Description</th>\n<th>Type</th>\n<th>Default Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>title</td>\n<td>content of table header</td>\n<td>ReactElement/ReactNode/Function</td>\n<td>&apos;column-group&apos;</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Table Group Header\">Table.GroupHeader <a class=\"header-anchor scroll-count-item\" href=\"#Table Group Header\" data-scroll-id=\"Table Group Header\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Description</th>\n<th>Type</th>\n<th>Default Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>cell</td>\n<td>cell rendering logic</td>\n<td>ReactElement/ReactNode/Function</td>\n<td>() =&gt; &apos;&apos;</td>\n</tr>\n<tr>\n<td>hasChildrenSelection</td>\n<td>whether to render selection on Children</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n<tr>\n<td>hasSelection</td>\n<td>whether to render selection on GroupHeader</td>\n<td>Boolean</td>\n<td>true</td>\n</tr>\n<tr>\n<td>useFirstLevelDataWhenNoChildren</td>\n<td>use the first level data when there is no children in dataSouce</td>\n<td>Boolean</td>\n<td>false</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Table Group Footer\">Table.GroupFooter <a class=\"header-anchor scroll-count-item\" href=\"#Table Group Footer\" data-scroll-id=\"Table Group Footer\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Description</th>\n<th>Type</th>\n<th>Default Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>cell</td>\n<td>cell rendering logic</td>\n<td>ReactElement/ReactNode/Function</td>\n<td>() =&gt; &apos;&apos;</td>\n</tr>\n</tbody>\n</table>\n"}