p>Used for data tables and includes optional search bar, pagination, and footer button group. Some pertinent notes regarding data tables are:
- Tables should always include `<thead>` and `<tbody>` tags, as it helps determine things such as total number of columns, and header columns.
- If `has_search` attribute is set to 1, a new row will be added to the table just after the opening `<thead>` tag with the search box.
- Syrus will go through all `<th>` tags within the last row of the `<thead>`, and replace them with the contents of the `[[data_table.th]]` HTML snippet found within the tags.txt file.
- Within the `<th>` columns you may place a `has_sort="1"` attribute, and if present, the sort ascending / descending links will be placed within the header column. Look at the tags.txt file, and you will see how this works.
- If the `has_sort="1"` attribute is present, you may add an optional `alias="xxx"` attribute where `xxx` is the name of the column to sort by and is replaced as the `~col_alias~` merge field you will see in the tags.txt file. If not present, this defaults to the lowercase with underscores version of the column name.
- You may place `<s:button_group> ... </s:button_group>` tags anywhere within the `<s:data_table< tag. If present, they will be removed, and the contents will be placed in the bottom left corner of the table inside a footer row. If pagination is being used, the footer row will consist of the button group on the left side, and the pagination links on the right side of the row.
The `<s:data_table>` tag tag supports the following attributes:
|id||No||Unique id of the table element. Defaults to "tblMain".|
|has_search||No||Can be either 0 or 1, and if set to 1, a search box will be placed at the top right corner of the table. Defaults to 0.|
|search_label||No||If `has_search` is 1, the place holder of the search box. Defaults to "Search".|
|total_rows||No||Used for pagination, and the total number of rows available in the full result set.|
|rows_per_page||No||Used for pagination, and the number of rows displayed per page. Defaults to 25.|
|current_page||No||Used for pagination, and the current page being displayed. Defaults to 1.|
|max_items||No||Used for pagination, and is the maximum number of page items to display within the pagination links, not including the prev / next items. Defaults to 10.|
|pgn_href||No||Used for pagination, and is the `href` of each page item link. The text "page=X" will be appended to this href, where X is the page number of the item.|
<s:data_table has_search="1" total_rows="384" current_page="3" rows_per_page="25"> <s:button_group> <s:button href="#" label="Delete Checked Rows"> </s:button_group> <thead><tr> <th has_sort="1">Date</th> <th>Full Name</th> <th has_sort="1">Amount</th> <th>Manage</th> </tr></thead> <tbody><tr> <td>Mar 21, 2021 at 14:22</td> <td>John Smith</td> <td>$29.95</td> <td align="center"><s:button href="#" label="Manage"></td> </tr><tr> <td>Mar 24, 2021 at 09:53</td> <td>Mike Jacobs</td> <td>$53.95</td> <td align="center"><s:button href="#" label="Manage"></td> </tr> </tbody></s:data_table>
|Mar 21, 2021 at 14:22||John Smith||$29.95||Manage|
|Mar 24, 2021 at 09:53||Mike Jacobs||$53.95||Manage|
|Delete Checked Rows 51 - 75 of 384|