mi-column
The <mi-column> element can be used to define a column within a <mi-data-table> element.
Working example:
Example usage:
<!-- HTML -->
<mi-data-table>
<mi-column label="ID" binding="id"></mi-column>
<mi-column label="Title" binding="title" sortable sort="asc"></mi-column>
<mi-column id="button-column"><button class="mi-button mi-button--primary">?</button></mi-column>
</mi-data-table>
// JavaScript
const tableData = [
{ id: 1, title: 'Kitchen'},
{ id: 2, title: 'Living Room'},
{ id: 3, title: 'Bedroom'},
];
document.querySelector('mi-data-table').rows = tableData;
document.getElementById('button-column').addEventListener('clicked', event => alert(event.detail.title));
align-content attribute
The align-content attribute can be used to align the content of the column. Possible values are left, center, or right. The default value is left.
binding attribute
The binding attribute can be used to specify what part of the row data to display.
Eg. having row data like [ { id: 1, title: "Living Room" }, {...} ], when using binding="title" the title value from the data will be displayed (in this example Living Room).
You can also omit the binding and compose the content yourself by providing it as inner content of the column element. You are able to use data interpolation as well. Eg.
<mi-column>Identifier <strong>{id}</strong></mi-column>. This approach will also enable you to use
MapsIndoors CSS classes and MIDT classes.
label attribute
The label attribute can be used to set the content of the column heading (tr element) in the table. If omitted, the binding name will be used.
sort attribute
The sort attribute is used to pre-sort the table by a specific column. Possible values are asc or desc.
sortable attribute
The sortable attribute can be used to indicate that the table can be sorted by this column content. For sorting by date use sortable="date".
width attribute
The width attribute sets the width of the column. All CSS length units are accepted. The default value is auto.
clicked event
A clicked event is emitted from the <mi-column> element when content inside the cells have been clicked. Event payload contains the row data.
Properties
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
alignContent |
align-content |
The alignContent property sets the alignment of the column's content. | string |
'left' |
binding |
binding |
The name of the property on the row object which value will be displayed. | string |
undefined |
fitContent |
fit-content |
If present, the column width is fitted the content. | boolean |
false |
label |
label |
The label that will be shown in the table header. | string |
undefined |
monospace |
monospace |
The monospace property sets the font-family to monospace. | boolean |
false |
sort |
sort |
If present, the table will be pre-sorted by this column. | string |
undefined |
sortable |
sortable |
If present, the column will be sortable. *For sorting dates use sortable="date". |
string |
undefined |
width |
width |
The width property sets the column's width. All CSS length units are accepted. | string |
'auto' |
Events
| Event | Description | Type |
|---|---|---|
clicked |
Fired when clicking on content within a table cell for this column. Event detail contains the row data. | CustomEvent<object> |