django:bootstrap table加載django返回的數據

?bootstrap table加載表格數據有兩類方式:

一種通過data屬性的方式配置,一種是javascipt方式配置

這里看js配置方式:

  1、當數據源為.json文件時

    url參數寫上json文件的地址就行,但是json文件格式必須為json格式(2種):

    a:一種為json數組格式?[{"id": 0,"name": "Item 0","price": "$0"},{"id": 1,"name": "Item 1","price": "$1"}],同時sidePagination 需要為client或者直接注釋掉該參數,只有這樣前臺的分頁插件才能正常工作;

      但是不能為server,否則前臺提示:沒有找到匹配的記錄

[  {  "id": 0,  "name": "Item 0",  "price": "$0"  },  {  "id": 1,  "name": "Item 1",  "price": "$1"  }  ]  

?

?

    b:另一種為json對象格式,必須要有total和rows兩個key,{"total": 2,"rows": [{"id": 0,"name": "Item 0","price": "$0"},{"id": 1,"name": "Item 1","price": "$1"}]},

且鍵的名字必須與下方columns的field值一樣,才能讀取到數據,同時?sidePagination 參數必須要為server,但是如果后臺沒有處理的話,前臺會在第一頁顯示全部數據,為client時,前臺會提示:沒有找到匹配的記錄。

?

{"total": 2,"rows": [{"id": 0,"name": "Item 0","price": "$0"},{"id": 1,"name": "Item 1","price": "$1"}]
}

?

?

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>項目列表</title><script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><link href="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.css" rel="stylesheet"><script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.js"></script><script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/locale/bootstrap-table-zh-CN.min.js"></script></head><body><table id="mytab" class="table table-hover"></table></body><script>var aaa = JSON.parse('{{ datalist|safe }}');alert(aaa);</script><script type="text/javascript">{#var Datalist ='{{ datalist|safe }}'; // 獲取后臺傳來的數據需要加上safe過濾#}
            {#datalist= [[93,93,0,100.0],[20,23,26,29]]#}var aaa = JSON.parse('{{ datalist|safe }}');alert(aaa);$('#mytab').bootstrapTable({{#全部參數#}url: "{% static 'guchen_array.json' %}",         //請求后臺的URL(*)或者外部json文件,json內容為json數組[{"id": 0,"name": "Item 0","price": "$0"},{"id": 1,"name": "Item 1","price": "$1"}]
                                                                        //且鍵的名字必須與下方columns的field值一樣,同時sidePagination需要設置為client或者直接注釋掉,這樣前臺才能讀取到數據,且分頁正常。
                                           //當json文件內容為:{"total": 2,"rows": [{"id": 0,"name": "Item 0","price": "$0"},{"id": 1,"name": "Item 1","price": "$1"}]}時,
                                           //分頁要寫為server,但是server如果沒有處理的話,會在第一頁顯示所有的數據,分頁插件不會起作用
              
              {#url: "{% static 'guchen_obj.json' %}",#}
              
dataType: "json",method: 'get', //請求方式(*) toolbar: '#toolbar', //工具按鈕用哪個容器 striped: true, //是否顯示行間隔色 cache: false, //是否使用緩存,默認為true,所以一般情況下需要設置一下這個屬性(*) pagination: true, //是否顯示分頁(*) sortable: true, //是否啟用排序 sortOrder: "asc", //排序方式 {#queryParams: oTableInit.queryParams,//傳遞參數(*)#} sidePagination: "client", //分頁方式:client客戶端分頁,server服務端分頁(*) pageNumber: 1, //初始化加載第一頁,默認第一頁 pageSize: 10, //每頁的記錄行數(*) pageList: [10, 25, 50, 100], //可供選擇的每頁的行數(*) search: true, //是否顯示表格搜索,此搜索是客戶端搜索,不會進服務端,所以,個人感覺意義不大 strictSearch: true,showColumns: true, //是否顯示所有的列 showRefresh: true, //是否顯示刷新按鈕 minimumCountColumns: 2, //最少允許的列數 clickToSelect: true, //是否啟用點擊選中行 {#height: 500, //行高,如果沒有設置height屬性,表格自動根據記錄條數覺得表格高度#} uniqueId: "ID", //每一行的唯一標識,一般為主鍵列 showToggle: false, //是否顯示詳細視圖和列表視圖的切換按鈕 cardView: false, //是否顯示詳細視圖 detailView: true, //是否顯示父子表 columns: [{field: 'id',title: '項目名'},{field: 'name',title: '數據庫表名'},{field: 'price',title: '總數'},{field: 'operate',title: '操作',width: 120,align: 'center',valign: 'middle',formatter: actionFormatter,},],//操作欄的格式化function actionFormatter(value, row, index) {var id = value;var result = "";result += "<a href='javascript:;' class='btn btn-xs green' οnclick=\"EditViewById('" + id + "', view='view')\" title='查看'><span class='glyphicon glyphicon-search'></span></a>";result += "<a href='javascript:;' class='btn btn-xs blue' οnclick=\"EditViewById('" + id + "')\" title='編輯'><span class='glyphicon glyphicon-pencil'></span></a>";result += "<a href='javascript:;' class='btn btn-xs red' οnclick=\"DeleteByIds('" + id + "')\" title='刪除'><span class='glyphicon glyphicon-remove'></span></a>";return result;}</script></html>

頁面展示如下:

?

?下一步將外部json文件修改為使用django后臺傳遞的數據。

?  2、當數據源為django后臺返回時

  改動只有url參數變了。

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>項目列表</title><script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><link href="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.css" rel="stylesheet"><script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.js"></script><script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/locale/bootstrap-table-zh-CN.min.js"></script></head><body><table id="mytab" class="table table-hover"></table></body>{#        <script>#}{#var aaa = JSON.parse('{{ datalist|safe }}');#}
{#          aaa = {{ datalist|safe }}#}
{#            alert(aaa[0]);#}
{#        </script>#}<script type="text/javascript">{#var Datalist ='{{ datalist|safe }}'; // 獲取后臺傳來的數據需要加上safe過濾#}
            {#datalist= [[93,93,0,100.0],[20,23,26,29]]#}var aaa = JSON.parse('{{ datalist|safe }}');alert(aaa);$('#mytab').bootstrapTable({{#全部參數#}{#url: "{% static 'guchen1.json' %}",         //請求后臺的URL(*)或者外部json文件,json內容必須為json數組[{"id": 0,"name": "Item 0","price": "$0"},{"id": 1,"name": "Item 1","price": "$1"}]#}
                        {#                                                //且鍵的名字必須與下方columns的field值一樣,才能讀取到數據#}
                        url:"http://127.0.0.1:8000/getdata",dataType: "json",method: 'get',                      //請求方式(*)
                        toolbar: '#toolbar',                //工具按鈕用哪個容器
                        striped: true,                      //是否顯示行間隔色
                        cache: false,                       //是否使用緩存,默認為true,所以一般情況下需要設置一下這個屬性(*)
                        pagination: true,                   //是否顯示分頁(*)
                        sortable: true,                     //是否啟用排序
                        sortOrder: "asc",                   //排序方式
                        {#queryParams: oTableInit.queryParams,//傳遞參數(*)#}
                        sidePagination: "server",           //分頁方式:client客戶端分頁,server服務端分頁(*)
                        pageNumber: 1,                       //初始化加載第一頁,默認第一頁
                        pageSize: 10,                       //每頁的記錄行數(*)
                        pageList: [10, 25, 50, 100],        //可供選擇的每頁的行數(*)
                        search: true,                       //是否顯示表格搜索,此搜索是客戶端搜索,不會進服務端,所以,個人感覺意義不大
                        strictSearch: true,showColumns: true,                  //是否顯示所有的列
                        showRefresh: true,                  //是否顯示刷新按鈕
                        minimumCountColumns: 2,             //最少允許的列數
                        clickToSelect: true,                //是否啟用點擊選中行
                        {#height: 500,                        //行高,如果沒有設置height屬性,表格自動根據記錄條數覺得表格高度#}
                        uniqueId: "ID",                     //每一行的唯一標識,一般為主鍵列
                        showToggle: false,                    //是否顯示詳細視圖和列表視圖的切換按鈕
                        cardView: false,                    //是否顯示詳細視圖
                        detailView: true,                   //是否顯示父子表
columns: [{field: 'id',        //返回數據rows數組中的每個字典的鍵名與此處的field值要保持一致title: '項目名'},{field: 'name',title: '數據庫表名'},{field: 'price',title: '總數'},{field: 'operate',title: '操作',width: 120,align: 'center',valign: 'middle',formatter: actionFormatter,},],
});//操作欄的格式化function actionFormatter(value, row, index) {var id = value;var result = "";result += "<a href='javascript:;' class='btn btn-xs green' οnclick=\"EditViewById('" + id + "', view='view')\" title='查看'><span class='glyphicon glyphicon-search'></span></a>";result += "<a href='javascript:;' class='btn btn-xs blue' οnclick=\"EditViewById('" + id + "')\" title='編輯'><span class='glyphicon glyphicon-pencil'></span></a>";result += "<a href='javascript:;' class='btn btn-xs red' οnclick=\"DeleteByIds('" + id + "')\" title='刪除'><span class='glyphicon glyphicon-remove'></span></a>";return result;}</script></html>

?

這里要注意的是django后臺的返回必須是json,且必須要有total和rows兩個key,同樣rows中的鍵名需要與columns中的fileds值一樣

def getdata(request):datalist = {"total": 3,"rows": [{"id": 1,"name": "mdm","price": 200}]}return HttpResponse(json.dumps(datalist))

?

注意:這里加載表格頁面用的是/bootstrapTable這個url,獲取表格數據用的是getdata這個視圖

url(r'^bootstrapTable/',views.bootstrapTable),
url(r'^getdata/',views.getdata),

?參考:https://www.jianshu.com/p/b5ca011a0d9c

轉載于:https://www.cnblogs.com/gcgc/p/11136889.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386493.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

這是一份面向Android開發者的復習指南,成功入職字節跳動

前言 19年6月份從網易云音樂離開&#xff0c;放棄了留學機會&#xff0c;開始了人生的第一次創業&#xff0c;前后嘗試了兩個項目&#xff0c;因為個人能力與時機因素都失敗了&#xff0c;雖然沒能享受到創業所能夠帶來高杠桿物質上的回報&#xff0c;但是對個人軟技能和自我邊…

JVM啟動參數

不管是YGC還是Full GC,GC過程中都會對導致程序運行中中斷,正確的選擇不同的GC策略,調整JVM、GC的參數&#xff0c;可以極大的減少由于GC工作&#xff0c;而導致的程序運行中斷方面的問題&#xff0c;進而適當的提高Java程序的工作效率。但是調整GC是以個極為復雜的過程&#xf…

【UOJ 92】有向圖的強連通分量

【題目描述】&#xff1a; 有向圖強連通分量&#xff1a;在有向圖G中&#xff0c;如果兩個頂點vi,vj間&#xff08;vi>vj&#xff09;有一條從vi到vj的有向路徑&#xff0c;同時還有一條從vj到vi的有向路徑&#xff0c;則稱兩個頂點強連通(strongly connected)。如果有向圖G…

這篇文章可以滿足你80%日常工作!一線互聯網公司面經總結

前言 最近發現大家都喜歡看面試相關的文章&#xff0c;我也跟一波風&#xff0c;總結了一下我面試中所遇到的問題總結&#xff0c;分享一下面試中被問的最多的一些問題。 希望對正在找工作的朋友提供一些幫助。 好了話不多說&#xff0c;進入正題。 作為安卓開發者&#xff…

java并發synchronized 鎖的膨脹過程(鎖的升級過程)深入剖析(1)

我們先來說一下我們為什么需要鎖&#xff1f; 因為在并發情況為了保證線程的安全性&#xff0c;是在一個多線程環境下正確性的概念&#xff0c;也就是保證多線程環境下共享的、可修改的狀態的正確性&#xff08;這里的狀態指的是程序里的數據&#xff09;&#xff0c;在java程…

MSCRM二次開發實現自動編號功能

功能描述&#xff1a;對客戶實體實現自動編號功能&#xff0c;1、2、3、4...... 自動編號存放于屬性accountnumber.原  理&#xff1a;在mscrm服務器用一個文本文件存放當前最新編號&#xff0c;每當創建客戶記錄時在PreCreate事件接口做以下步驟&#xff1a;1、鎖定文本文件…

這篇文章可以滿足你80%日常工作!成功入職騰訊

什么是中年危機 根據權威數據顯示&#xff0c;國內IT程序員鼎盛時期是在25-27歲左右&#xff0c;30歲對于程序員而言完全是一個38線&#xff0c;接著就是轉業轉崗的事情&#xff0c;這一點在業界也算是一個共識了。 大學畢業步入IT行業普遍年齡也是在22歲左右&#xff0c;然而…

java并發synchronized 鎖的膨脹過程(鎖的升級過程)深入剖析(2)

接下來我們分析兩個批量偏向撤銷的相關案例&#xff08;禁止偏向鎖延遲的情況下&#xff1a;-XX:UseBiasedLocking -XX:BiasedLockingStartupDelay0&#xff09;&#xff1a; 案例一&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28…

System.Configuration命名空間下的關鍵類

1.ConfigurationManager和 WebConfigurationManager類&#xff1a; 使用 ConfigurationManager 類&#xff0c;可以訪問計算機和應用程序的配置信息。ConfigurationManager 是處理客戶端應用程序配置文件的首選方法&#xff1b;不推薦使用任何其他方法。對于 Web 應用程序&…

連續四年百度Android崗必問面試題!Android校招面試指南

前言 剛從阿里面試回來&#xff0c;想和大家分享一些我的面試經驗&#xff0c;以及面試題目。 這篇文章將會更加聚焦在面試前需要看哪些資料&#xff0c;一些面試技巧以及一些這次的面試考題。 面試經歷 7月確定想走后開始看各種面經&#xff0c;復習基礎知識&#xff0c;月…

Spring Boot教程(11) – 理解注解@ControllerAdvice

之前&#xff0c;我們介紹過ModelAttribute和ExceptionHandler,前者可以往請求的Model里加數據&#xff0c;后者可以接受請求處理方法拋出的異常。但是他們放在控制器(Controller)里的時候&#xff0c;作用范圍是有限的&#xff0c;只管當前控制器里的方法。如果你有幾百個控制…

透徹解析!字節跳動Android實習面試涼涼經,年薪超過80萬!

什么是Kotlin? Kotlin&#xff0c;如前面所說&#xff0c;它是JetBrains開發的基于JVM的語言。JetBrains因為創造了一個強大的Java開發IDE被大家所熟知。Android Studio&#xff0c;官方的Android IDE&#xff0c;就是基于Intellij&#xff0c;作為一個該平臺的插件。 Kotli…

synchronized 底層如何實現?什么是鎖升級、降級?

synchronized 底層如何實現&#xff1f;什么是鎖升級、降級&#xff1f; synchronized 代碼塊是由一對 monitorenter/monitorexit 指令實現的&#xff0c;Monitor 對象是同步的基本實現單元。 https://docs.oracle.com/javase/specs/jls/se10/html/jls-8.html#d5e13622 在Jav…

Spring主要用到兩種設計模式

Spring主要用到兩種設計模式 1、工廠模式 Spring容器就是實例化和管理全部Bean的工廠。 工廠模式可以將Java對象的調用者從被調用者的實現邏輯中分離出來。 調用者只關心被調用者必須滿足的某種規則&#xff0c;這里的規則我們可以看做是接口&#xff0c;而不必關心實例的具體實…

意外收獲字節跳動內部資料,已開源

前言 每年的3、4月份是各大企業為明年拓展業務大量吸納人才的關鍵時期&#xff0c;招聘需求集中、空缺崗位多&#xff0c;用人單位也習慣在初秋進行大規模招聘。 金九銀十&#xff0c;招聘旺季&#xff0c;也是一個求職旺季。 不打無準備的仗&#xff0c;在這種關鍵時期&…

OpenJDK研究

這里以32位Windows 7為例 安裝必須的軟件 JDK1.8CygwinMicrosoft Visual Studio 2010 (請下載英文版) 這里就不介紹怎么安裝這些軟件了&#xff0c;假設安裝后的目錄名分別是: (請根據你的實際情況調整這些目錄名&#xff09; D:\JavaSE1.8 D:\Cygwin D:\VS2010 增加環境變…

獵頭文章(一)

&#xff08;一&#xff09;從來沒有想過自己會加入這一行&#xff0c; 從開始自己喜歡的專業通訊&#xff0c; 到后來喜歡的管理&#xff0c;&#xff0c;幻想過是專業高手&#xff0c; 幻想過管理專家&#xff0c; 卻從來沒有想過進入這一行&#xff0c;但 真的在我剛剛離開校…

成功跳槽百度工資從15K漲到28K,威力加強版

前言 看到一篇文章中提到“最近幾年國內的初級Android程序員已經很多了&#xff0c;但是中高級的Android技術人才仍然稀缺“&#xff0c;這的確不假&#xff0c;從我在百度所進行的一些面試來看&#xff0c;找一個適合的高級Android工程師的確不容易&#xff0c;一般需要進行大…

Redis下載及安裝(windows版)

下載地址 1、Github下載地址&#xff1a;https://github.com/MicrosoftArchive/redis/releases 2、百度網盤下載地址 https://pan.baidu.com/s/1z1_OdNVbtgyEjiktqgB83g 密碼&#xff1a;kdfq 安裝過程 1.首先先把下載的壓縮包解壓到一個文件夾中 2.打開cmd指令窗口 3.輸入你剛…

成功跳槽百度工資從15K漲到28K,跳槽薪資翻倍

前言 這篇文章主要是分享今年上半年的面試心得&#xff0c;現已就職于某大廠有三個月了&#xff0c;近期有很多公司均已啟動秋招&#xff0c;也祝大家在 2020 的下半年面試順利&#xff0c;獲得理想的offer&#xff01; 之前找工作的那段時間感想頗多&#xff0c;總結一點面試…