var options = {
uniqueId : "{$unique_id}", // 表格主键名称,(默认为id,如表主键不为id必须设置主键)
url : "{$data_url|raw}", // 请求后台的URL
addUrl : "{$add_url|raw}", // 新增的地址
editUrl : "{$edit_url|raw}", // 修改的地址
delUrl : "{$del_url|raw}", // 删除的地址
exportUrl : "{$export_url|raw}", // 导出的地址
sortUrl : "{$sort_url|raw}", // 排序的地址
sortName : "{$unique_id}", // 排序列名称
sortOrder : "{$sort}", // 排序方式 asc 或者 desc
pagination : {$pagination}, // 是否进行分页
parentIdField : "{$parent_id_field}", // 列表树模式需传递父id字段名(parent_id/pid)
clickToSelect : true, // 默认false不响应,设为true则当点击此行的某处时,会自动选中此行的checkbox/radiobox
pageSize : "{$page_size}", // 每页显示的行数
layerOpen : "{$layer_open}", // 添加/编辑等页启用layer弹层加载
pageList : [10, 25, 50, 100,200,500,1000], //可供选择的每页显示行数
classes : '{$classes}', // ※设置表样式,自己加的
height : $(window).height() - 220, // ※设置表格高度,自己加的
如以上代码中,当对“parentIdField”设置项设置了树形结构的父ID时,在表的搜索操作时,对于父id为顶级即为“0”的记录才能显示出来,而父ID大于0的记录无法显示。笔者猜测可能跟树形结构的渲染机制有关,即父ID必须从0开始,向上可追溯到顶级。
那么既要在初始状态显示树形结构,又要在搜索时得到完整的搜索数据,我的方法是在查询数据的过程中,判断是否存在搜索条件,如果存在,那么对查询结果进行格式化,即把所有的记录的父ID全部赋0值,也就是把他们都设置为顶级,这样就能显示所有的搜索结果。例如:
foreach ($list as $k=>$v) {
//当选择树形结构时,搜素的时候含有参数,一律把pid赋值为0方能渲染
if ($where){
$list[$k]['pid'] = 0;
}
}