How bootstrap-table renders local data by default

I use bootstrap-table, because the data is displayed by one of the list from the objects returned from the backend, so I cannot write the interface and return the data directly in the js configuration. I default to how to render the data to table by default after the data is requested by ajax. I see that most of the online tutorials are rendered dynamically from the server.

I hope there is a god who can teach me a reliable solution that can get data such as ajax and render it to the page!

Let"s assume that I"ve got an array of data projectList

.

clipboard.png

var $table =  $("-sharpprojectTable"),
    $remove = $("-sharpremove"),
    selections = [];
function initTable() {
    $table.bootstrapTable({
        height: getHeight(),
        data:data1,
        method:"get",
        url:"/",
        toolbar:"-sharptoolbar",
        cache: false, //  false  AJAX  true
        striped: true,  //false
        pagination: true, // false
        pageList: [10, 20, 50, 100, "ALL"], // 
        pageSize: 10, // 
        pageNumber: 1, // 
        sidePagination: "client", // 
        /*queryParams: function (params) { // false
            return {
                pageSize: params.limit, // 
                offset: params.offset, // 
                sort: params.sort, // 
                sortOrder: params.order, // 
                dataId: $("-sharpdataId").val() // 
            }
        },*/
        sortName: "id", // 
        sortOrder: "desc", // ,
        search: true,                       //
        strictSearch: true,
        showColumns: true,                  //
        showRefresh: true,                  //
        minimumCountColumns: 2,             //
        clickToSelect: true,                //
        uniqueId: "ID",                     //
        // showToggle:true,                    //
        cardView: false,                    //
        detailView: false,                   //
        showExport: true,
        exportDataType: "all",
        exportTypes:[ "csv","excel","pdf"],  //
        columns: [
            {
                checkbox: true, // 
                align: "center" // 
            }, {
                field: "statusOrder", // jsonname
                title: "", // 
                align: "center", // 
                valign: "middle", // 
                sortable: true,
                /*editable: {
                    type: "text",
                    title: "",
                    validate: function (value) {
                        value = $.trim(value);
                        if (!value) {
                            return "";
                        }
                        if (!/^\+?[1-9][0-9]*$/.test(value)) {
                         return "0."
                         }
                    }
                },*/
            }, {
                field: "statusName",
                title: "",
                align: "center",
                valign: "middle",
                sortable: true,
                /*editable: {
                    type: "text",
                    title: "",
                    validate: function (value) {
                        value = $.trim(value);
                        if (!value) {
                            return "";
                        }
                        var data = $table.bootstrapTable("getData"),
                            index = $(this).parents("tr").data("index");
                        console.log(data[index]);
                        return "";
                    }
                },*/
            }, {
                field: "statusInfo",
                title: "",
                align: "center",
                valign: "middle",
                sortable: true,
                /*editable: {
                    type: "text",
                    title: "",
                    validate: function (value) {
                        value = $.trim(value);
                        if (!value) {
                            return "";
                        }
                        var data = $table.bootstrapTable("getData"),
                            index = $(this).parents("tr").data("index");
                        console.log(data[index]);
                        return "";
                    }
                },*/
            }, {
                field: "formModels",
                title: "",
                align: "center",
                valign: "middle",
                /*editable: {
                    type: "text",
                    title: "",
                    validate: function (value) {
                        value = $.trim(value);
                        if (!value) {
                            return "This field is required";
                        }
                        if (!/^\$/.test(value)) {
                            return "This field needs to start width $."
                        }
                        var data = $table.bootstrapTable("getData"),
                            index = $(this).parents("tr").data("index");
                        console.log(data[index]);
                        return "";
                    }
                },*/
            }, {
                field: "tableModels",
                title: "",
                align: "center",
                valign: "middle",
                /*editable: {
                    type: "text",
                    title: "",
                    validate: function (value) {
                        value = $.trim(value);
                        if (!value) {
                            return "This field is required";
                        }
                        if (!/^\$/.test(value)) {
                            return "This field needs to start width $."
                        }
                        var data = $table.bootstrapTable("getData"),
                            index = $(this).parents("tr").data("index");
                        console.log(data[index]);
                        return "";
                    }
                },*/
            },{
                title: "",
                align: "center",
                valign: "middle",
                width: 160, // px
                formatter: function (value, row, index) {
                    return "<button class="btn btn-primary btn-sm" onclick="del(\"" + row.field + value + "\")"></button>";
                }
            }
        ],
        onLoadSuccess: function(){  //
            console.info("");
        },
        onLoadError: function(){  //
            console.info("");
        }
        /*columns: [
         [
         {
         field: "state",
         checkbox: true,
         rowspan: 1,
         align: "center",
         valign: "middle"
         }, {
         title: "Item ID",
         field: "id",
         rowspan: 1,
         align: "center",
         valign: "middle",
         sortable: true,
         footerFormatter: totalTextFormatter
         }, {
         title: "Item Detail",
         field: "detail",
         colspan: 3,
         rowspan: 1,
         align: "center"
         }
         ],
         /!*[
         {
         field: "name",
         title: "Item Name",
         sortable: true,
         editable: true,
         footerFormatter: totalNameFormatter,
         align: "center"
         }, {
         field: "price",
         title: "Item Price",
         sortable: true,
         align: "center",
         editable: {
         type: "text",
         title: "Item Price",
         validate: function (value) {
         value = $.trim(value);
         if (!value) {
         return "This field is required";
         }
         if (!/^\$/.test(value)) {
         return "This field needs to start width $."
         }
         var data = $table.bootstrapTable("getData"),
         index = $(this).parents("tr").data("index");
         console.log(data[index]);
         return "";
         }
         },
         footerFormatter: totalPriceFormatter
         }, {
         field: "operate",
         title: "Item Operate",
         align: "center",
         events: operateEvents,
         formatter: operateFormatter
         }
         ]*!/
         ]*/
    });
    // sometimes footer render error.
    setTimeout(function () {
        $table.bootstrapTable("resetView");
    }, 200);
    $table.on("check.bs.table uncheck.bs.table " +
        "check-all.bs.table uncheck-all.bs.table", function () {
        $remove.prop("disabled", !$table.bootstrapTable("getSelections").length);

        // save your data, here just save the current page
        selections = getIdSelections();
        // push or splice the selections if you want to save all data selections
    });
    $table.on("expand-row.bs.table", function (e, index, row, $detail) {
        if (index % 2 == 1) {
            $detail.html("Loading from ajax request...");
            $.get("LICENSE", function (res) {
                $detail.html(res.replace(/\n/g, "<br>"));
            });
        }
    });
    $table.on("all.bs.table", function (e, name, args) {
        console.log(name, args);
    });
    $remove.click(function () {
        var ids = getIdSelections();
        $table.bootstrapTable("remove", {
            field: "id",
            values: ids
        });
        $remove.prop("disabled", true);
    });
    $(window).resize(function () {
        $table.bootstrapTable("resetView", {
            height: getHeight()
        });
    });
}

function getIdSelections() {
    return $.map($table.bootstrapTable("getSelections"), function (row) {
        return row.id
    });
}

function responseHandler(res) {
    $.each(res.rows, function (i, row) {
        row.state = $.inArray(row.id, selections) !== -1;
    });
    return res;
}

function detailFormatter(index, row) {
    var html = [];
    $.each(row, function (key, value) {
        html.push("

<b>" + key + ":</b> " + value + "

"); }); return html.join(""); } function operateFormatter(value, row, index) { return [ "<a class="like" href="javascript:void(0)" title="Like">", "<i class="glyphicon glyphicon-heart"></i>", "</a> ", "<a class="remove" href="javascript:void(0)" title="Remove">", "<i class="glyphicon glyphicon-remove"></i>", "</a>" ].join(""); } window.operateEvents = { "click .like": function (e, value, row, index) { alert("You click like action, row: " + JSON.stringify(row)); }, "click .remove": function (e, value, row, index) { $table.bootstrapTable("remove", { field: "id", values: [row.id] }); } }; function totalTextFormatter(data) { return "Total"; } function totalNameFormatter(data) { return data.length; } function totalPriceFormatter(data) { var total = 0; $.each(data, function (i, row) { total += +(row.price.substring(1)); }); return "$" + total; } function getHeight() { return $(window).height() - $("h1").outerHeight(true); } function del(field,values) { $("-sharpprojectTable").bootstrapTable("remove",filed,values); } function delMore(id) { $("-sharpprojectTable").bootstrapTable("removeByUniqueId ",id); } $(function () { var scripts = [ "https://cdn.bootcss.com/bootstrap-table/1.12.1/bootstrap-table.min.js", // location.search.substring(1) || "https://cdn.bootcss.com/bootstrap-table/1.12.1/bootstrap-table.min.js", "https://cdn.bootcss.com/bootstrap-table/1.12.1/extensions/export/bootstrap-table-export.min.js", // "http://rawgit.com/hhurz/tableExport.jquery.plugin/master/tableExport.js", "https://cdn.bootcss.com/bootstrap-table/1.12.1/extensions/editable/bootstrap-table-editable.min.js", "https://cdn.bootcss.com/x-editable/1.5.1/bootstrap3-editable/js/bootstrap-editable.min.js" ], eachSeries = function (arr, iterator, callback) { callback = callback || function () { }; if (!arr.length) { return callback(); } var completed = 0; var iterate = function () { iterator(arr[completed], function (err) { if (err) { callback(err); callback = function () { }; } else { completed += 1; if (completed >= arr.length) { callback(null); } else { iterate(); } } }); }; iterate(); }; eachSeries(scripts, getScript, initTable); }); function getScript(url, callback) { var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); script.src = url; var done = false; // Attach handlers for all browsers script.onload = script.onreadystatechange = function () { if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) { done = true; if (callback) callback(); // Handle memory leak in IE script.onload = script.onreadystatechange = null; } }; head.appendChild(script); // We handle everything using the script element injection return undefined; } //cookie cookie function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) return unescape(arr[2]); else return null; }

I remember that bootstra-table displays all JSON data
. You can try to pick up and send data


there is a load time that needs to be executed in the sucess event of ajax, but it is not recommended to do this. To do so is to dynamically obtain it directly in it. It has a built-in method for processing data responseHandler . At the same time, you need post to submit and return ok, with a built-in queryParams parameter. Finally, bootstrap-table receives the arr array,

MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1be473c-316f0.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1be473c-316f0.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?