使用jQuery数据表,是否可以根据网址值仅在页面加载时搜索特定列?
例如,如果url以live结尾,则过滤表列Is is live(这个样本中的索引是4)?
url = "website.com/circuits/live"
if ("url ends with live"){
$('#circuit_list').DataTable({
column index 4 filter "Live"
})
}
这是表格样本
<table width="100%" class="table table-striped table-bordered table-hover dataTable no-footer dtr-inline" id="circuit_list" role="grid" style="width: 100%;">
<thead>
<tr>
<th> </th>
<th>Circuit</th>
<th>Location</th>
<th>Name</th>
<th>Is Live</th>
...
</tr>
</thead>
<tbody>
<tr>
<td>EDIT</td>
<td>DSL</td>
<td>Liverpool</td>
<td>Bills DSL</td>
<td>Not Live</td>
...
</tr>
<tr>
<td>EDIT</td>
<td>DSL</td>
<td>Manchester</td>
<td>Bobs DSL</td>
<td>Live</td>
...
</tr>
...
</tbody>
</table>
<script>
$(document).ready(function() {
$('#showroom_list').DataTable({
"pageLength": 30,
responsive: true
});
});
</script>
答案 0 :(得分:3)
如果我们有问题中描述的RESTful网址,那么最简单 抓住最后一部分的方法是
document.location.href.split('/').pop()
现在在initComplete
回调中执行搜索:
$('#circuit_list').DataTable({
initComplete: function() {
this
.api()
.column(4)
.search( document.location.href.split('/').pop() )
.draw()
}
})
执行完全匹配搜索,即不包括包含&#34; live&#34;当搜索字词为&#34; not live&#34;转&#34;聪明&#34;搜索,请参阅column().search(input, regex, smart)
:
.search( document.location.href.split('/').pop(), false, false)
这也可以通过使用正则表达式搜索来实现:
.search( '^'+document.location.href.split('/').pop()+'$', true, false)
如果您想进行全表搜索,只需使用search
选项就更方便了:
$('#circuit_list').DataTable({
search: {
search: document.location.href.split('/').pop()
}
})
这样做的好处是,过滤器框也会自动填充搜索词。
答案 1 :(得分:0)
您可以测试此选项,仅查找第3列吗?
android{
configurations {
all*.exclude group: 'com.android.volley'
}
}
如文档中所述:https://datatables.net/reference/api/column().search()
答案 2 :(得分:0)
DataTables具有自定义过滤功能。 https://datatables.net/examples/plug-ins/range_filtering.html
因此,我建议您在页面上使用查询字符串参数加载的jquery DIV上方创建一个文本框,并使用自定义范围过滤。
这是一个id为yourcustomfieldsid的文本框
的示例$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
var yourValue = $('#yourcustomfieldsid').val();
var yourData = data[3];
return yourData.indexOf(yourValue) >= 0;
}
);
并获取网址参数
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
并将文本框设置为URL
中的值$(document).ready( function(){
$('#yourcustomfieldsid').val( getUrlVars()["querystringparametername"] );
});
当文本框更改为文本框更改时刷新表格时,您将需要一个on change事件。
$('#yourcustomfieldsid').change(function() {
$('$jquerytableid').DataTable().ajax.reload();
});
我对任何错别字道歉,但这应该是概念。