初始化表格的时候加上配置renderDefault:true,
{
field: 'cate_id',
title: '业绩分组',
operate: '=',
visible:false,
renderDefault:true,
//从接口获取json数据渲染下拉筛选框。json是列表必须有id,name两个字段否准无法正常显示
//有查看全部的需求,在get_cate_id接口runturn之前,加array_unshift($list,['id'=>0,'name'=>'全部分组']);
//参考https://blog.youkuaiyun.com/qq_37301074/article/details/104499533的第9条隐藏下来筛选的选择选项
searchList: $.getJSON("cate/get_cate_list"),
//从url中获取cate_id的值,让下拉筛选框默认选中
defaultValue:Fast.api.query('cate_id'),
}
在url中传入参数cate_id=3,cate_id对应的下拉选择框就会默认选中对应值,你以为这样获取列表的时候就按条件筛选了?还不行,可能是框架bug,虽然显示选中了,但请求的时候参数没传给后台。
解决这个问题可在后台控制器进行处理
复制处理筛选条件的方法protected function buildparams()到你的控制器,并在代码中加如如下判断:
$filter = $filter ? $filter : [];
//如果filter中的cate_id为空且url中有cate_id
$id = $this->request->get('cate_id');
if($id && !isset($filter['cate_id'])){
$filter['cate_id'] = $id;
$op['cate_id'] = '=';
}
if(isset($filter['cate_id'])&&$filter['cate_id']==0){
unset($filter['cate_id']);
unset($op['cate_id']);
}
饶了一大圈终于实现了下拉筛选的默认选中某个值,分享给大家。