zoukankan      html  css  js  c++  java
  • 后台系统组件:一丶bootstrap table


    http://www.cnblogs.com/landeanfen/p/4976838.html (bootstrap table)

    http://www.cnblogs.com/landeanfen/p/5821192.html (bootstrap table editable)

    以上两篇是我搜到的相关文章,并且在自己做的东西中也用到了,十分详细,适合刚接触的人阅读学习。

    http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/

    同时附录bootstrap-table的中文文档,其实bootstrap-table已经为我们做了很多,我们只需要传入数据,有需要时自己规定输入形式,编辑时的一些方法就差不多了。


    下面就是我自己在使用过程中,自己遇到的一些问题,罗列出来,方便以后再次使用的时候,查阅学习。

    一. json中的数据并非直接在表格中显示:

    比如我json中返回了1/0,而我要显示的为是/否。这里可以用formatter自己定义输入

    { 
      field: 'channel_accounts_type',     
      title: '操作',    
      cellStyle:function(){
         return { classes: "hideExtraWord" }
      },
      detailFormatter: function (value, row, index) {
        var str = '/crfp2p/dim/toDimMain.html?groupNo='+row.groupNo+'&groupType='+row.groupType                 
        return '<a href="'+str+'" data-type="text">链接</a>';
      },
    }

     

    二.常见api,在开始推荐的文章链接中也有:

    $('#tb_departments').bootstrapTable({
      url: url, //请求后台的URL(*)
      ajax: ajaxPost,
      method: 'post', //请求方式(*)
      toolbar: '#toolbar', //工具按钮用哪个容器
      striped: true, //是否显示行间隔色
      cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
      pagination: true, //是否显示分页(*)
      sortable: true, //是否启用排序
      sortOrder: "asc", //排序方式
      queryParams: ajaxParams, //传递参数(*)
      sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
      pageNumber: 1, //初始化加载第一页,默认第一页
      pageSize: 10, //每页的记录行数(*)
      pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
      search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
      strictSearch: false,
      showColumns: true, //是否显示所有的列
      showRefresh: true, //是否显示刷新按钮
      minimumCountColumns: 2, //最少允许的列数
      clickToSelect: false,//是否启用点击选中行
      //height: 550, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
      uniqueId: "序号", //每一行的唯一标识,一般为主键列
      showToggle: true, //是否显示详细视图和列表视图的切换按钮
      cardView: false, //是否显示详细视图
      detailView: false, //是否显示父子表
      onEditableSave: editSaved,
      columns: columns
    });

    三.查询参数(上面的ajaxParams):

    这里根据后台需要的值传就可以,点击页码的时候,跟向后台请求相应的数据

    function queryParams(params) {
      //var param_key = $("#formSearch #param_key").val();
      //var param_value = $("#formSearch #param_value").val();
      //var param_desc = $("#formSearch #param_desc").val();
    
      var postdata = {  };
      var temp = {                  //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
        rows: params.limit,       //页面大小
        page: (parseInt(params.offset/params.limit)+1), //页码
        sidx: "user_Id",  
        sord: 'desc',
        param: postdata
      };
      return temp;
    }

    四.删除行的效果:

    删除时候的一个效果,可以再成功之后执行回调

    //    删除
    $("#btn_delete").click(function () {
      $($('#tb_departments').bootstrapTable('getSelections')).each(function(){
        var passArgument = {
          groupId:$(this)[0].groupId
        }        
        var argument = {
          url: '/dim/xxx.html',
          data:passArgument,
          success:function(res){
            toastr.success('删除成功!');
            console.log( $(":checked").parent().parent().fadeOut() )
            $(":checked").parent().parent().fadeOut();
          }
        }
        ajax(argument)                    
      })
    })

    五.对于行内编辑失效:

    这里在failed里面加了一个把值改回原来的值,对于后台反馈失败的情况作出处理

    function editSaved(field, row, oldValue, $el) {
        var passArgument = {                        
            groupDesc:row.groupDesc,
            groupId:row.groupId,
            groupName:row.groupName,
            groupNo:row.groupNo,
            groupType:row.groupType
      }
      var data = {
        url:   "/dim/findDimGroupByNo.html",
        data: passArgument,
        success: function (res, status) {
          if( res.retcode == 0 ){
            toastr.success('修改成功');
            var data = {
              url:'/dim/saveOrUpdateDimGroup.html',
              data:passArgument,
              success:function(res){
                       $('#tb_departments').bootstrapTable('refresh');  
              }
            }
            ajax(data)     
          }else{
            toastr.error('修改失败,有冲突');
            $el[0].innerHTML = oldValue  
          }
        },
        error: function(){
          toastr.error('修改失败,网络错误');
          $el[0].innerHTML = oldValue               
        }
      }
      ajax(data)
    }                       
  • 相关阅读:
    闰年or平年判断
    输入一个日期判断是否正确的几种方法
    网页布局+下拉隐藏栏
    360导航布局
    [LeetCode] Longest Common Prefix
    [LeetCode] Length of Last Word
    [LeetCode] Valid Palindrome II
    [Qt] Qt信号槽
    [LeetCode] Split Linked List in Parts
    [LeetCode] Find Pivot Index
  • 原文地址:https://www.cnblogs.com/nemoro1928/p/6179255.html
Copyright © 2011-2022 走看看