近期在开发jeecg项目中发现,在jeecg中引入bootstrapTable这个框架时,把搜索功能打开后才发现,它支持模糊查询的前提是需要用户自动输入两个**把值包起来,这样就很不友好。我们可以在bootstrapTable的ftl文件进行用户表单提交之前自动拼接*号
1 找到ftl文件(一般导入框架后会在这个位置)
2 找到查询的方法
3 打开另一个名为bootstrapTable-search.ftl文件,这里是搜索配置的地方,然后在自动生成的代码里加一个我们的search类(一般来说就是只有输入框才需要所以找到与之对应的就好了)
顺带一提,这里的判断就像我们前端DIV一样<#if>(if代码块)<#esle>(else)代码块</#if>
4 在searchList方法进行星号赋值然后在reloadTable方法把*去掉,就可以了
function searchList(){
$('.search').each(function(key,value){
var valueGroup = "*"+$(this).val()+"*"
$(this).val(valueGroup)
});
reloadTable();
}
function reloadTable(){
$('#${dataGrid.name}').bootstrapTable('refresh');
$('.search').each(function(key,value){
var valSelect = $(this).val()
var valueFilter = valSelect.replace(/[\-\_\,\!\|\~\`\(\)\#\$\%\^\&\*\{\}\:\;\"\L\<\>\?]/g, '');// 去掉特殊字符
$(this).val(valueFilter)
});
}