Bootstrap table ID 的数字排序 table
Bootstrap table numeric sort of an ID table
我正在使用 Boostrap table 在我的管理页面中描述来自我的数据库的 table。我将数组保存到 json 文件中,然后进入 table 并使用以下代码显示它:
<div class=\"row\">
<div class=\"col-lg-12\">
<div class=\"panel panel-default\">
<div class=\"panel-heading\"> <a href='record_show.php?tselect=blog&typerec=newblog' class='btn btn-success'>Добавить запись</a></div>
<table data-toggle=\"table\" data-url=\"tables/data4.json\" data-sort-name=\"id\" data-sort-order=\"desc\" data-show-refresh=\"true\" data-show-toggle=\"true\" data-show-columns=\"true\" data-search=\"true\" data-select-item-name=\"toolbar1\" data-pagination=\"true\" >
<thead>
<tr>
<th data-field=\"id\" data-sortable=\"true\">ID</th>
<th data-field=\"header\" data-sortable=\"true\" >Заголовок</th>
<th data-field=\"intro\" data-sortable=\"true\" >Введение</th>
<th data-field=\"status\" data-sortable=\"true\" >Статус</th>
<th data-field=\"seo\" data-sortable=\"true\" >Сео</th>
<th data-field=\"type\" data-sortable=\"true\" >Тип</th>
<th data-field=\"date\" data-sortable=\"true\" >Дата</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
问题是 Bootstrap table 仅按字母数字排序,即 (1,11,12,2,21,3) 等。您有制作 [=18 的经验吗? =] tables 强制进行数字排序,即 (1,2,3,11,12,21)?
在 Bootstrap table 的最新版本中,我发现了以下内容。
您可以使用
data-custom-sort="customSort"
然后你需要把下面的脚本放在table的HTML下面。
<script>
function customSort(sortName, sortOrder, data) {
var order = sortOrder === 'desc' ? -1 : 1
data.sort(function (a, b) {
var aa = +((a[sortName] + '').replace(/[^\d]/g, ''))
var bb = +((b[sortName] + '').replace(/[^\d]/g, ''))
if (aa < bb) {
return order * -1
}
if (aa > bb) {
return order
}
return 0
})
}
</script>
我正在使用 Boostrap table 在我的管理页面中描述来自我的数据库的 table。我将数组保存到 json 文件中,然后进入 table 并使用以下代码显示它:
<div class=\"row\">
<div class=\"col-lg-12\">
<div class=\"panel panel-default\">
<div class=\"panel-heading\"> <a href='record_show.php?tselect=blog&typerec=newblog' class='btn btn-success'>Добавить запись</a></div>
<table data-toggle=\"table\" data-url=\"tables/data4.json\" data-sort-name=\"id\" data-sort-order=\"desc\" data-show-refresh=\"true\" data-show-toggle=\"true\" data-show-columns=\"true\" data-search=\"true\" data-select-item-name=\"toolbar1\" data-pagination=\"true\" >
<thead>
<tr>
<th data-field=\"id\" data-sortable=\"true\">ID</th>
<th data-field=\"header\" data-sortable=\"true\" >Заголовок</th>
<th data-field=\"intro\" data-sortable=\"true\" >Введение</th>
<th data-field=\"status\" data-sortable=\"true\" >Статус</th>
<th data-field=\"seo\" data-sortable=\"true\" >Сео</th>
<th data-field=\"type\" data-sortable=\"true\" >Тип</th>
<th data-field=\"date\" data-sortable=\"true\" >Дата</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
问题是 Bootstrap table 仅按字母数字排序,即 (1,11,12,2,21,3) 等。您有制作 [=18 的经验吗? =] tables 强制进行数字排序,即 (1,2,3,11,12,21)?
在 Bootstrap table 的最新版本中,我发现了以下内容。
您可以使用
data-custom-sort="customSort"
然后你需要把下面的脚本放在table的HTML下面。
<script>
function customSort(sortName, sortOrder, data) {
var order = sortOrder === 'desc' ? -1 : 1
data.sort(function (a, b) {
var aa = +((a[sortName] + '').replace(/[^\d]/g, ''))
var bb = +((b[sortName] + '').replace(/[^\d]/g, ''))
if (aa < bb) {
return order * -1
}
if (aa > bb) {
return order
}
return 0
})
}
</script>