• bootstrapTable jqGrid使用总结


    项目中使用bootstrapTable展示表格,记录开发过程中遇到的问题,以便查询;
    参考官网:Bootstrap Table Examples

    自定义加载数据,原有的数据会被删除

    $table.bootstrapTable('load', data)
    

    插入一条行数据

    1. $table.bootstrapTable('insertRow', {index: 0, row: {
    2. id: randomId,
    3. name: 'Item ' + randomId,
    4. price: '$' + randomId
    5. }})

    获取表格数据

    $table.bootstrapTable('getData')
    

    获取选中的数据

    $table.bootstrapTable('getSelections')
    

    删除数据

    1. var ids = $.map($table.bootstrapTable('getSelections'), function (row) {
    2. return row.id
    3. })
    4. $table.bootstrapTable('remove', {
    5. field: 'id',
    6. values: ids
    7. })

    父页面打开子页面(弹窗)

    1. layer.open({
    2. type: 2,
    3. content: 'add.html' //可以是同级目录的页面
    4. });

    子页面(弹窗)传值到父页面

    1. let row = $("#test").bootstrapTable('getSelections');//获得选中的行数据
    2. window.parent.doCallback(row);//doCallback(row)是在父页面定义的方法,可以处理得到的row数据
    3. //关闭弹窗
    4. let index = parent.layer.getFrameIndex(window.name);
    5. parent.layer.close(index);

    js传递List数据到后端

    1. let array = [];
    2. let user1 = {"id": 1, "name": "huage"};
    3. let user2 = {"id": 2, "name": "heihei"};
    4. array.push(user1);
    5. array.push(user2);
    6. let data = {"userList": array};
    7. $.ajax({
    8. type: 'post',
    9. url: url,
    10. data: JSON.stringify(data),
    11. dataType: 'json',
    12. contentType: 'application/json',
    13. success: function(result){
    14. }
    15. })
    16. //后端处理
    17. public Result handler(@RequestBody InfoVo vo){
    18. }
    19. public class InfoVo{
    20. private List<User> userList;//跟js的data中参数名称对应
    21. }

    -----------------------------------------------------------------------

    ​​​​​​jqGrid使用总结

    1. 获取选中的一条记录(行id)
      function getSelectedRow() {
          var grid = $("#jqGrid");
          var rowKey = grid.getGridParam("selrow");
          if(!rowKey){
              alert("请选择一条记录");
              return ;
          }
          var selectedIDs = grid.getGridParam("selarrrow");
          if(selectedIDs.length > 1){
              alert("只能选择一条记录");
              return ;
          }
          return selectedIDs[0];
      }

    2. 获取选中的多条记录(行id数组)
      function getSelectedRows() {
          var grid = $("#jqGrid");
          var rowKey = grid.getGridParam("selrow");
          if(!rowKey){
              alert("请选择一条记录");
              return ;
          }
          return grid.getGridParam("selarrrow");
      }

    3. 弹出窗口(parking为窗口名称,弹出多个窗口时名称是不同的)
      var url = baseURL + 'admin/modules/pm/mp/pPurchaseApply.html';
      var iTop = (window.screen.height-30-500)/2;       //获得窗口的垂直位置;
      var iLeft = (window.screen.width-10-1200)/2;        //获得窗口的水平位置;
      window.open(url,'parking','height='+500+',width='+1200+',top='+iTop+',left='+iLeft+',
        toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no');

    4. 从弹出窗口获得数据,添加到第一个表格,并且根据返回数据查询后添加到第二个表格(添加本地数据到jqGrid,设置dataType为local)
      function selectD() {
          var ids = getSelectedRows();
          if(ids == null){
              return ;
          }
          var items =[];
          for(var i = 0; i  
      // 接收子页面传递过来的选定内容
      function send(items){
          var strs;
          for(var i = 0; i 

  • 在弹窗中获取主页面传来的参数
    //'admin/modules/pm/mp/mBiddingAgreement.html?bid='+bid;
    var url = window.location.href;
    var urlsplit = url.split("?bid=");
    var bid = urlsplit[1];

  • 设置单元格的值()
    $("#jqGrid2").setCell(row.id,"winAmount",row.remainAmount);

  • 删除第一个表格,同时删除第二个表格数据
    function del() {
        //动态数组,每次删除时取第一条
        var ids = getSelectedRows2('jqGrid');
        if(ids == null){
            return ;
        }
        var length = ids.length;
        var ids2 = $("#jqGrid2").jqGrid('getDataIDs');
        var length2 = ids2.length;
        for(var i = 0; i 

  • 使用formData传输复杂的数据
    function saveOrUpdate() {
        //组装后端数据
        var formData = new FormData();
        var ids = jQuery("#jqGrid").jqGrid('getDataIDs');
        vm.bi.applyIds=ids;
    
        $('#jqGrid2').jqGrid("saveCell", lastrow, lastcell);
        var ids2 = $("#jqGrid2").jqGrid('getDataIDs');
        var list =[];
        for(var i=0;i < ids2.length;i++){
            var row = $("#jqGrid2").jqGrid('getRowData',ids2[i]);
            list.push(row);
        }
        formData.append("list",JSON.stringify(list));
        formData.append("entity",JSON.stringify(vm.bi));
        var url = "mp/mbiddinginformation/save";
        $.ajax({
            type: "POST",
            url: baseURL + url,
            contentType: "application/json",
            data: formData,
            cache: false,
            processData: false,
            contentType: false,
            success: function(r){
                if(r.code === 0){
                    alert('操作成功', function(){
                        vm.reload();
                    });
                }else{
                    alert(r.msg);
                }
            }
        });
    }

  • 过滤重复数据
    var arr=[];//保存重复数据
    var ids_len = ids.length;
    for(var i = 0; i  

  • 相关阅读:
    QT用户登录注册,数据库实现
    深信服实验 | AF做透明部署时,如何对上网数据进行基本的上网管控和防护?
    [JAVAee]Spring MVC
    文本生成解码策略
    Redis详细教程
    aardio 调用 vs 编写的dll (stdcall方式) (dll又调用另一个dll)
    掌握SKILL语言:数字IC设计师必备的技能之一
    leetcode20. 有效的括号 [简单题]
    FDTD script command (对结构/数据操作)
    Vue 安装 vue的基本使用 vue的初步使用步骤
  • 原文地址:https://blog.csdn.net/qq_18932003/article/details/126055886