bootstrapTable 확장 백그라운드 합계 열

2998 단어 js 플러그인
bootstrap table은 백엔드 계산 합계열을 제공하지 않기 때문에 확장이 필요합니다. 다음은 간단한 확장입니다.
1. 재load 방법에 orlData 속성 추가
 BootstrapTable.prototype.load = function (data) {
        var fixedScroll = false;
        // junlei.shan add
        this.options.orlData = data;
        // junlei.shan end 
        // #431: support pagination
        if (this.options.sidePagination === 'server') {
            this.options.totalRows = data[this.options.totalField];
            fixedScroll = data.fixedScroll;
            data = data[this.options.dataField];
        } else if (!$.isArray(data)) { // support fixedScroll
            fixedScroll = data.fixedScroll;
            data = data.data;
        }
        
        this.initData(data);
        this.initSearch();
        this.initPagination();
        this.initBody(fixedScroll);
    };

플러그인은 데이터만 저장하기 때문입니다.데이터 데이터, 추가된 데이터.footer가 저장되지 않았기 때문에 orlData 속성을 추가하여 백엔드에서 되돌아오는 데이터를 저장해야 합니다.
2, getorlData 추가 방법
//junlei.shan add 
    BootstrapTable.prototype.getOrlData = function () {
    	return this.options.orlData;
    };
    //junlei.shan end

이 방법을 추가하여 데이터를 얻는 데 사용합니다.
3. 재resetFooter 방법에 getOrlData 호출 추가()
 BootstrapTable.prototype.resetFooter = function () {
        var that = this,
            data = that.getData(),
            html = [];
        //junlei.shan add
        var orlData = that.getOrlData();
        //junlei.shan end

4、원소를 초기화할 때 판단에 따라 새로운 논리를 실행할지 여부
// junlei.shan modify
            if(orlData&&orlData.footer){
            	if(column.footerFormatter){
            		html.push(calculateObjectValue(column, column.footerFormatter, [data,rolData.footer],' ') || ' ');
            	}else{
            		html.push(orlData.footer[column.field]);
            	}
            }else{
            	html.push(calculateObjectValue(column, column.footerFormatter, [data], ' ') || ' ');
            }
            //junlei.shan modify end 

만약 원시 데이터가 orlData가 존재하지 않는다면 낡은 방식으로 하고 포맷이 필요한지 아닌지를 판단하는 방법이 존재한다면 직접 값을 얻을 필요가 없다.
요약:
이 방법은 백엔드 계산 합계열을 실현할 수 있으며,field가 일치해야 하며,footer는 대상이 아니라 그룹이어야 한다.
여러 개의 합계 열을 지원하려면 계속 확장해야 합니다.
데이터 형식은 다음과 같습니다.
{data: [{uid: 7791],name: "keenleung1",age: "26",height: "165", description: "설명"}, {uid: "7792",name: "keenleung2",age: "26",height: "165", description: "설명"}, {uid: "7793",name: "keenleung3",age:"26", height: "165", description: "설명"}, {uid: "7794",name: "keenleung4",age: "26", height: "165", description: "설명"}, {uid: "7795",name: "keenleung5",age: "26", height: "설명", description: "설명",],footer:{
uid: 합계,
name:"wu",
age:"123",
height:12321421,
description:"ss"}     };

좋은 웹페이지 즐겨찾기