マージされたグリッドセルextjs6

    mergeGrid:関数(ME){
        VARグリッド=この、
            colIndexArray = [0、1、4]、
            isAllSome。
        me.store.on( '負荷'、関数(){
            isAllSome = isAllSome ==未定義真:isAllSome; //默认为真
            // 1是否含有数据
            するvarのGridView =のdocument.getElementById(grid.getView()。 getId()+ '-body');
            (GridViewの== NULL)であれば{
                リターン;
            }
            // 2获取グリッド的所有TR
            VAR trArray = [];
            VAR tableArray = gridView.getElementsByTagName( 'テーブル');
            IF( tableArray!= NULL)
                Ext.each(tableArray、関数(テーブル){
                    table.setAttribute( "スタイル"、 "国境:0;背景色:白");
                });
            trArray = gridView.getElementsByTagName( 'TR');
            VAR = tdArray gridView.getElementsByTagName( 'TD');
            VAR = COUNT 。1;
            IF(tdArray = NULL!){
                Ext.each(tdArray、関数(TD){
                    td.style.borderBottom = "固体#1ピクセルE9E9E9";
                });
            }
            // 3マージ操作
            IF(isAllSome){すべての列が3.1 //合わせた:TRは、指定されたTDと同じでのみ隣接マージう
                VARをlastTr = trArray [0]; // 最初の行を指し
                // 1)データの第2行から、グリッドをトラバースTR。始めます
                (。; I <trLength; VAR 1 = I、trLength = trArray.length I ++は)のために{
                    VAR thisTr = trArray [I]、
                    真のVAR = isPass; //確認した場合
                    0 = 2 VARインデックス= I%の I /! 2:I / 2から1; //表示位置
                    // 2)を合わせ、カラムを通過する必要がある
                    (VARのJ = 0、= colArrayLength colIndexArray.length; J <colArrayLength; J ++){
                        VAR = colIndexArray colIndex、[J]。
                        // 3)一致しtdの2つの列を比較し、一致する場合、現在の列の最後のポイントを置く
                        (lastTr.childNodes [colIndex、】.innerText!= thisTr.childNodes [colIndex、】.innerText)場合、{
                            (VAR = N-ため0、N <colIndexArray.lengthあり; n ++ ){
                                colIndex = colIndexArray [N]。
                                thisTr.childNodes [colIndex] [ "borderTop"] = "1ピクセル固体#1 e9e9e9" .style。
                                trArray [インデックス] .childNodes [colIndex] .innerHTML = lastTr.childNodes [colIndex] .innerHTML。
                                lastTr.childNodes [colIndex] .innerHTML = "";
                                trArray [インデックス] .childNodes [colIndex] .style [ "textAlign"] = '中央'。
                                lastTr.childNodes [colIndex] [ "borderBottom"] = "" .style。
                                // IF(colIndex == 0){
                                // lastTr.childNodes [colIndex] .style [ "幅"] = "

                                / *他(colIndexの== 0の場合 ){// チェックボックスWLPは、2019年3月20日変性
                                    lastTr.childNodes [colIndex、] .style [ "幅"] = "28px"を;
                                    trArray [インデックス] .childNodes [colIndex、】 、 "25ピクセル" .style [ "幅"] =
                                * /}
                            }
                            ; lastTr = thisTr
                            isPass = falseに、
                            BREAK;
                        }
                    }
                    // 4 colIndexArrayが検証した場合、現在の行'組み合わせる'線にマージPUT)
                    IF(isPass ){
                        {(; J <colArrayLength J ++ VAR J = 0、colArrayLength = colIndexArray.length)のための
                            VAR colIndex = colIndexArray [J]。
                            thisTr.childNodes [colIndex] [ "borderBottom"] = "" .style。
                            
                            thisTr.childNodes [colIndex] .innerHTML = "";
                            // IF(colIndex == 0){
                            // thisTr.childNodes [colIndex] .style [ "幅"] = "79px"。
                            //}
                            / *他の場合(colIndex == 0){
                                thisTr.childNodes [colIndex] .style [ "幅"] = "28px"。
                            } * /

                        }
                    }
                }
            }
            
        })。

    }

おすすめ

転載: blog.csdn.net/qq_20426717/article/details/88945907