FastAdmin表格自定义操作,是通过自己在页面上添加操作按钮,监听按钮点击事件来实现。操作按钮针对所有行记录,而不是在每行的操作上都添加上按钮。
效果图
步骤
1. 添加操作按钮
编辑admin/view
下控制器对应的首页模板文件index.html
,在常规操作add
delete
edit
等处添加类似行,示例
<a href="javascript:;" class="btn btn-success btn-process-1 btn-disabled disabled" title="胜诉" ><i class="fa fa-pencil"></i> 胜诉</a>
<a href="javascript:;" class="btn btn-danger btn-process-3 btn-disabled disabled" title="败诉" ><i class="fa fa-pencil"></i> 败诉</a>
2. 监听按钮点击事件
编辑 public/assets/js/backend
下控制器对应的JS文件,在行 Table.api.bindevent(table);
下面添加如下代码:
//胜诉
$(".btn-process-1").click(function(){
var ids = Table.api.selectedids(table);
layer.confirm('确定要胜诉吗?', {btn: ['是','否'] },
function(index){
layer.close(index);
$.post("/admin.php/my_controller/process", {ids:ids , action:'success', reply:''},function(response){
if(response.code == 1){
Toastr.success(response.msg)
$(".btn-refresh").trigger('click');
}else{
Toastr.error(response.msg)
}
}, 'json')
},
function(index){
layer.close(index);
}
);
});
请求后台控制器的action有两种方式,
- jQuery AJAX
- FastAdmin表格原生方法
上面的代码是采用jQuery AJAX的方法,控制器中相应的添加process
方法来处理请求,这种方式优点
- 改写方便,只需要会用jQuery AJAX即可
- 参数传递灵活
缺点
- 需要自己控制提示信息的显示和表格的刷新
- 代码较长
其中提示信息的显示可用layer,也可以用Toastr,后者跟页面的提示整体保持一致。
第二种方式在请求时是这么写的
Table.api.multi('reapply', ids, table);
后台控制器中相应的需要改写multi
方法来处理请求,通过调试可获得传递的参数,这种方式的优点
- 表格原生方法,无需操心参数的传递、结果提示及表格的刷新
- 代码较短
缺点也比较致命
- 可传递的参数太少,很不灵活
- 需要改写控制器中的
multi
方法
大家可根据自己的需求灵活选取合适的方式。
也可以在表格的每一行上添加操作按钮,具体可参见 FastAdmin表格操作按钮2
1 thought on “FastAdmin表格自定义操作按钮”