最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

bootstrap table插件動(dòng)態(tài)加載表頭

 更新時(shí)間:2019年07月19日 09:15:49   作者:阿布布_0410  
這篇文章主要為大家詳細(xì)介紹了bootstrap table插件動(dòng)態(tài)加載表頭,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

bootstrap的table屬性已經(jīng)很熟悉了,最近遇到一個(gè)問(wèn)題,猶豫每個(gè)列表加載的數(shù)據(jù)需求不同,所以需要?jiǎng)討B(tài)的更換表頭。 網(wǎng)上有很多加載表格數(shù)據(jù)的例子,但是卻沒(méi)有找到如何動(dòng)態(tài)加載表格,再加在數(shù)據(jù)。 雖然可以一個(gè)表格加載一種數(shù)據(jù),但是本著學(xué)習(xí)的態(tài)度嘗試了下這種方式,結(jié)果發(fā)現(xiàn)是可以執(zhí)行的。分享下思路和實(shí)現(xiàn)過(guò)程,以備日后使用。

思路:

1、寫(xiě)接口,查詢(xún)出要展示的列。注意接口中必須要有字段中文名稱(chēng)(columns屬性的title值),字段的英文名稱(chēng)(columns的field字段),特別注意filed字段應(yīng)該與最后查詢(xún)出的列表中返回的json數(shù)據(jù)中的key保持一致,不然取不到值。

2、ajax請(qǐng)求剛才的接口,查詢(xún)出columns,并給table的columns賦值。

3、加載表格展示。

大致代碼如下:

表格:

var peopleOptions;
// 人口列表加載
function tableItem() {
  peopleOptions = {
    method : "POST", // 使用get請(qǐng)求到服務(wù)器獲取數(shù)據(jù)
    url : path + "/api/information/people/getList", // 獲取數(shù)據(jù)的地址
    contentType : "application/x-www-form-urlencoded",// 重要否則POST會(huì)報(bào)錯(cuò)
    striped : false, // 表格顯示條紋
    pagination : true, // 啟動(dòng)分頁(yè)
    pageSize : 10, // 每頁(yè)顯示的記錄數(shù)
    pageNumber : 1, // 當(dāng)前第幾頁(yè)
    pageList : [ 10, 20, 50 ], // 記錄數(shù)可選列表
    uniqueId : "id",
    showColumns : false, // 顯示下拉框勾選要顯示的列
    showToggle : false, // 顯示 切換試圖(table/card)按鈕
    clickToSelect : false, // 點(diǎn)擊可選
    singleSelect : false, // 禁止多選
    maintainSelected : true, // 在點(diǎn)擊分頁(yè)按鈕或搜索按鈕時(shí),將記住checkbox的選擇項(xiàng)
    sortable : true, // 禁止所有列的排序
    sidePagination : "server", // 表示服務(wù)端請(qǐng)求 后臺(tái)分頁(yè)
    toolbar : "#toolbar",// 指明自定義的toolbar
    queryParamsType : "undefined",
    queryParams : function queryParams(params) {
      var param = {
        pageNumber : params.pageNumber,
        pageSize : params.pageSize,
        orgId : ztreeId,
        nodeId : ztreeId,
        citizenName : $("#fullname").val().trim(),
        sex : $("#sex").val(),
        age : $("#age").val().trim(),
        identityCode : $("#idCard").val().trim(),
        cellPhone : $("#isMobile").val().trim(),
        adress : $("#adress").val().trim(),
      };
      return param;
    },
    onLoadSuccess : function() { // 加載成功時(shí)執(zhí)行
      responseHandler : function(res) { // 格式化數(shù)據(jù)
        console.log(res);
        if (res.data.total != undefined)
          tmp = {
            total : res.data.total,
            rows : res.data.rows
          };
        if (res.data.total == undefined)
          tmp = {
            total : res.data.length,
            rows : res.data
          };
        return tmp;
      },
      columns : [ {
        checkbox : true,
        title : '全選',
        valign : 'middle'
      }, {
        title : '序號(hào)',
        field : 'number',
        width : '40px',
        align : 'center',
        valign : 'middle',
        formatter : indexFormatter
      }, {
        title : '姓名',
        field : 'citizenName',
        align : 'center',
        valign : 'middle',
      }, {
        title : '年齡',
        field : 'age',
        align : 'center',
        width : 28,
        valign : 'middle',
        formatter : ageFormatter
      }, {
        title : '性別',
        field : 'sex',
        width : 28,
        align : 'center',
        valign : 'middle',
      },{
        title : '身份證號(hào)',
        field : 'identityCode',
        align : 'center',
        valign : 'middle',
      }, {
        title : '民族',
        field : 'nation',
        align : 'center',
        valign : 'middle',
      } ]
    }
}
  $table = $("#table").bootstrapTable(peopleOptions);
};

動(dòng)態(tài)獲取列:

function getColumns() {
 // 加載動(dòng)態(tài)表格
 $.ajax({
 url : path + "api/information/people/getLableColumn?ztreeId=" + ztreeId,
 type : 'get',
 dataType : "json",
 async : false,
 success : function(returnValue) {
  // 未查詢(xún)到相應(yīng)的列,展示默認(rèn)列
  if (returnValue.retCode == "0") {
  //沒(méi)查到列的時(shí)候把之前的列再給它
  myColumns = $table.bootstrapTable('getOptions').columns[0];
  } else {
  // 異步獲取要?jiǎng)討B(tài)生成的列
  var arr = returnValue.data;
  $.each(arr, function(i, item) {
   myColumns.push({
   "field" : item.labelColumnCode,
   "title" : item.labelColumnName,
   "hide" : true,
   "align" : 'center',
   "valign" : 'middle'
   });
  });
  }
  console.log(myColumns);
  return myColumns;
 }
 });
}

刷新列表:

//點(diǎn)擊左側(cè)樹(shù)后重新加載表格
 $table.bootstrapTable( 
        "refreshOptions", 
        { 
       url : path + "/api/peopledataInfo/getPeopleInfoList", // 獲取數(shù)據(jù)的地址
       columns : myColumns,
       
        } 
    );
  }

需要注意的是bootstrap的table提供了兩個(gè)刷新的方法,一個(gè)refresh,一個(gè)refreshOptions,前者只是刷新當(dāng)前表格,后者會(huì)將表格中的組件全部更新一遍,因?yàn)槲覀兲鎿Q了url和columns,所以需要調(diào)用后者。

展示效果:

動(dòng)態(tài)加載表頭其實(shí)就是類(lèi)似Echart中動(dòng)態(tài)加載數(shù)據(jù)的感覺(jué)一樣,只是改變整個(gè)Option中的相關(guān)屬性即可。

優(yōu)點(diǎn):代碼量會(huì)大大減少,當(dāng)我們要加載不同數(shù)據(jù)且樣式一樣的表格的時(shí)候可以采用這樣的方式。

缺點(diǎn):樣式很難維護(hù)。前端人員不好定位bug,所以很難修改相應(yīng)的樣式bug。

依據(jù)項(xiàng)目實(shí)際情況,擇優(yōu)使用吧。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

延安市| 井研县| 弋阳县| 绩溪县| 绥芬河市| 宁陕县| 苍溪县| 凤城市| 东兰县| 临沂市| 巨鹿县| 长武县| 密山市| 中阳县| 交城县| 隆林| 佛坪县| 毕节市| 龙里县| 凤凰县| 舞阳县| 集安市| 兴山县| 马鞍山市| 杨浦区| 白沙| 田阳县| 宁远县| 双峰县| 灯塔市| 广安市| 石首市| 彰化县| 宁远县| 乾安县| 九龙县| 宁河县| 陆河县| 彩票| 淮阳县| 舒兰市|