如何设置bootstraptable插件在ajax请求成功后的回调函数?

yangtoude
  • 326

最近项目中遇到一个问题:Windows客户端在嵌入服务端的网页时需要在页面中的bootstraptable生成的表格数据列中添加一个按钮(仅在Windows客户端添加按钮,通过浏览器访问时不添加),如图:

clipboard.png
所以想到一个解决方法:
Windows客户端代码中设置下userAgent,服务端的js代码根据userAgent来决定是否添加按钮。
现在页面中的bootstraptable是这么使用的:
jsp相关代码

<%@include file="list.js" %>
//......
<table id="listTable"   data-toolbar="#toolbar"></table>
// ......

list.js相关代码:

<%@ page contentType="text/html;charset=UTF-8" %>
<script>
$(document).ready(function() {
    $('#listTable').bootstrapTable({
         
          //请求方法
               ajaxOptions: {
                   async: false // 如果设置为异步,需要等请求成功后才会生成下面的tr和td,就无法在td中添加按钮
               },
               method: 'get',
               dataType: "json",
               showRefresh: true,
               showToggle: true,
        // ......

注意现在代码中的ajaxOptions被设置为了同步请求,这是因为tbody中的内容都是用js生成的,只有数据请求成功后tbody中的tr和td才会生成出来,如果设置为异步的话,后面生成按钮的js就无法获取由bootstraptable生成的tr和td,按钮也就无法添加了
问题来了:
1,chrome中提示ajax同步请求的方式好像已经被w3c弃用了,那么bootstraptable中是否有设置请求成功后回调函数的方法或者参数,这样我就可以在请求成功后添加按钮?我看了下bootstraptable的文档,发现没有,ajax请求的方法已经被它封装在里面了。
2,bootstraptable的文档中提供了一个ajax参数,让使用者自定义ajax方法,不过要实现jquery的api接口,我按照官网的示例写了下没有成功。或许是我的tbody是由js生成的原因吧。
想问下有没有人遇到过类似的情况,该如何解决。

回复
阅读 14.4k
1 个回答
wr1ttenyu
  • 2
新手上路,请多包涵

clipboard.png
通过查看bootstrap-table.js源码发现onLoadSuccess事件,通过配置onLoadSuccess属性可以启用数据加载完的回调函数,如下图:
clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏