dist/ES5/AX6UIGrid/AX6UIGrid_body.js
function repaintBody(_elTargetKey, _colGroup, _bodyRow, _groupRow, _list, _scrollConfig) {
    var _elTarget = this.$.panel[_elTargetKey];

    if (!isFirstPaint && !_scrollConfig) {
      this.$.livePanelKeys.push(_elTargetKey); // 사용중인 패널키를 모아둠. (뷰의 상태 변경시 사용하려고)
      return false;
    }

    var SS = [],
        cgi = void 0,
        cgl = void 0,
        di = void 0,
        dl = void 0,
        tri = void 0,
        trl = void 0,
        ci = void 0,
        cl = void 0,
        col = void 0,
        cellHeight = void 0,
        colAlign = void 0,
        isScrolled = function () {
      // 스크롤값이 변경되거나 처음 호출되었습니까?
      if (typeof _scrollConfig === "undefined" || typeof _scrollConfig['paintStartRowIndex'] === "undefined") {
        _scrollConfig = {
          paintStartRowIndex: 0,
          paintRowCount: _list.length
        };
        return false;
      } else {
        return true;
      }
    }(),
        stripeString = '#fff 0px, #fff ' + (cfg.body.columnHeight - cfg.body.columnBorderWidth) + 'px, #eee ' + (cfg.body.columnHeight - cfg.body.columnBorderWidth) + 'px, #eee ' + cfg.body.columnHeight + 'px';

    if (isScrolled) {
      SS.push('<div style="background:repeating-linear-gradient(to top, ' + stripeString + ');' + 'font-size:0;' + 'line-height:0;height: ' + (_scrollConfig.paintStartRowIndex - this.xvar.frozenRowIndex) * _scrollConfig.bodyTrHeight + 'px;"></div>');
    }

    SS.push('<table border="0" cellpadding="0" cellspacing="0">');
    SS.push('<colgroup>');
    for (cgi = 0, cgl = _colGroup.length; cgi < cgl; cgi++) {
      SS.push('<col style="width:' + _colGroup[cgi]._width + 'px;"  />');
    }
    SS.push('<col  />');
    SS.push('</colgroup>');

    di = _scrollConfig.paintStartRowIndex;

    for (dl = function () {
      var len = void 0;
      len = _list.length;
      if (_scrollConfig.paintRowCount + _scrollConfig.paintStartRowIndex < len) {
        len = _scrollConfig.paintRowCount + _scrollConfig.paintStartRowIndex;
      }
      return len;
    }(); di < dl; di++) {

      if (_list[di]) {
        var isGroupingRow = false,
            rowTable = void 0,
            odi = typeof _list[di].__origin_index__ !== "undefined" ? _list[di].__origin_index__ : di;
        if (_groupRow && "__isGrouping" in _list[di]) {
          rowTable = _groupRow;
          isGroupingRow = true;
        } else {
          rowTable = _bodyRow;
        }

        for (tri = 0, trl = rowTable.rows.length; tri < trl; tri++) {

          SS.push('<tr class="tr-' + di % 4 + '', cfg.body.trStyleClass ? _AX6Util2.default.isFunction(cfg.body.trStyleClass) ? ' ' + cfg.body.trStyleClass.call({
            item: _list[di],
            index: di
          }, _list[di], di) : ' ' + cfg.body.trStyleClass : '', '"', isGroupingRow ? ' data-ax6grid-grouping-tr="true"' : '', ' data-ax6grid-tr-data-index="' + di + '"', ' data-ax6grid-tr-data-o-index="' + odi + '"', ' data-ax6grid-selected="' + (_list[di][cfg.columnKeys.selected] || "false") + '"', ' data-ax6grid-disable-selection="' + (_list[di][cfg.columnKeys.disableSelection] || "false") + '"', '>');
          for (ci = 0, cl = rowTable.rows[tri].cols.length; ci < cl; ci++) {
            col = rowTable.rows[tri].cols[ci];
            cellHeight = cfg.body.columnHeight * col.rowspan - cfg.body.columnBorderWidth;
            colAlign = col.align || bodyAlign;

            SS.push('<td ', 'data-ax6grid-panel-name="' + _elTargetKey + '" ', 'data-ax6grid-data-index="' + di + '" ', 'data-ax6grid-data-o-index="' + odi + '" ', 'data-ax6grid-column-row="' + tri + '" ', 'data-ax6grid-column-col="' + ci + '" ', 'data-ax6grid-column-rowIndex="' + col.rowIndex + '" ', 'data-ax6grid-column-colIndex="' + col.colIndex + '" ', 'data-ax6grid-column-attr="' + (col.columnAttr || "default") + '" ', function (_focusedColumn, _selectedColumn) {
              var attrs = "";
              if (_focusedColumn) {
                attrs += 'data-ax6grid-column-focused="true" ';
              }
              if (_selectedColumn) {
                attrs += 'data-ax6grid-column-selected="true" ';
              }
              return attrs;
            }(this.focusedColumn[di + "_" + col.colIndex + "_" + col.rowIndex], this.selectedColumn[di + "_" + col.colIndex + "_" + col.rowIndex]), 'colspan="' + col.colspan + '" ', 'rowspan="' + col.rowspan + '" ', 'class="' + function (_col) {
              var tdCSS_class = "";
              if (_col.styleClass) {
                if (_AX6Util2.default.isFunction(_col.styleClass)) {
                  tdCSS_class += _col.styleClass.call({
                    column: _col,
                    key: _col.key,
                    item: _list[di],
                    index: di
                  }) + " ";
                } else {
                  tdCSS_class += _col.styleClass + " ";
                }
              }
              if (cfg.body.columnBorderWidth) tdCSS_class += "hasBorder ";
              if (ci == cl - 1) tdCSS_class += "isLastColumn ";
              return tdCSS_class;
            }.call(this, col) + '" ', 'style="height: ' + cellHeight + 'px;min-height: 1px;">');

            SS.push(function (_cellHeight) {
              var lineHeight = cfg.body.columnHeight - cfg.body.columnPadding * 2 - cfg.body.columnBorderWidth;
              if (!col.multiLine) {
                _cellHeight = cfg.body.columnHeight - cfg.body.columnBorderWidth;
              }

              return '<span data-ax6grid-cellHolder="' + (col.multiLine ? 'multiLine' : '') + '" ' + (colAlign ? 'data-ax6grid-text-align="' + colAlign + '"' : '') + '" style="height:' + _cellHeight + 'px;' + (col.multiLine ? '' : 'line-height: ' + lineHeight + 'px;') + '">';
            }(cellHeight), isGroupingRow ? getGroupingValue.call(this, _list[di], di, col) : getFieldValue.call(this, _list, _list[di], di, col), '</span>');

            SS.push('</td>');
          }
          SS.push('<td ', 'data-ax6grid-column-row="null" ', 'data-ax6grid-column-col="null" ', 'data-ax6grid-data-index="' + di + '" ', 'data-ax6grid-data-o-index="' + odi + '" ', 'data-ax6grid-column-attr="' + "default" + '" ', 'style="height: ' + cfg.body.columnHeight + 'px;min-height: 1px;" ', '></td>');
          SS.push('</tr>');
        }
      }
    }
    SS.push('</table>');

    if (isScrolled && _list.length) {
      SS.push('<div style="background:repeating-linear-gradient(to bottom, ' + stripeString + ');' + 'font-size:0;' + 'line-height:0;height: ' + (_list.length - di) * _scrollConfig.bodyTrHeight + 'px;"></div>');
    }

    _elTarget.empty();
    SS = SS.join('');

    _elTarget.get(0).innerHTML = SS;

    this.$.livePanelKeys.push(_elTargetKey); // 사용중인 패널키를 모아둠. (뷰의 상태 변경시 사용하려고)
    return true;
  }
function repaintBody(_elTargetKey, _colGroup, _bodyRow, _groupRow, _list, _scrollConfig) {
    var _elTarget = this.$.panel[_elTargetKey];

    if (!isFirstPaint && !_scrollConfig) {
      this.$.livePanelKeys.push(_elTargetKey); // 사용중인 패널키를 모아둠. (뷰의 상태 변경시 사용하려고)
      return false;
    }

    var SS = [],
        cgi = void 0,
        cgl = void 0,
        di = void 0,
        dl = void 0,
        tri = void 0,
        trl = void 0,
        ci = void 0,
        cl = void 0,
        col = void 0,
        cellHeight = void 0,
        colAlign = void 0,
        isScrolled = function () {
      // 스크롤값이 변경되거나 처음 호출되었습니까?
      if (typeof _scrollConfig === "undefined" || typeof _scrollConfig['paintStartRowIndex'] === "undefined") {
        _scrollConfig = {
          paintStartRowIndex: 0,
          paintRowCount: _list.length
        };
        return false;
      } else {
        return true;
      }
    }(),
        stripeString = '#fff 0px, #fff ' + (cfg.body.columnHeight - cfg.body.columnBorderWidth) + 'px, #eee ' + (cfg.body.columnHeight - cfg.body.columnBorderWidth) + 'px, #eee ' + cfg.body.columnHeight + 'px';

    if (isScrolled) {
      SS.push('<div style="background:repeating-linear-gradient(to top, ' + stripeString + ');' + 'font-size:0;' + 'line-height:0;height: ' + (_scrollConfig.paintStartRowIndex - this.xvar.frozenRowIndex) * _scrollConfig.bodyTrHeight + 'px;"></div>');
    }

    SS.push('<table border="0" cellpadding="0" cellspacing="0">');
    SS.push('<colgroup>');
    for (cgi = 0, cgl = _colGroup.length; cgi < cgl; cgi++) {
      SS.push('<col style="width:' + _colGroup[cgi]._width + 'px;"  />');
    }
    SS.push('<col  />');
    SS.push('</colgroup>');

    di = _scrollConfig.paintStartRowIndex;

    for (dl = function () {
      var len = void 0;
      len = _list.length;
      if (_scrollConfig.paintRowCount + _scrollConfig.paintStartRowIndex < len) {
        len = _scrollConfig.paintRowCount + _scrollConfig.paintStartRowIndex;
      }
      return len;
    }(); di < dl; di++) {

      if (_list[di]) {
        var isGroupingRow = false,
            rowTable = void 0,
            odi = typeof _list[di].__origin_index__ !== "undefined" ? _list[di].__origin_index__ : di;
        if (_groupRow && "__isGrouping" in _list[di]) {
          rowTable = _groupRow;
          isGroupingRow = true;
        } else {
          rowTable = _bodyRow;
        }

        for (tri = 0, trl = rowTable.rows.length; tri < trl; tri++) {

          SS.push('<tr class="tr-' + di % 4 + '', cfg.body.trStyleClass ? _AX6Util2.default.isFunction(cfg.body.trStyleClass) ? ' ' + cfg.body.trStyleClass.call({
            item: _list[di],
            index: di
          }, _list[di], di) : ' ' + cfg.body.trStyleClass : '', '"', isGroupingRow ? ' data-ax6grid-grouping-tr="true"' : '', ' data-ax6grid-tr-data-index="' + di + '"', ' data-ax6grid-tr-data-o-index="' + odi + '"', ' data-ax6grid-selected="' + (_list[di][cfg.columnKeys.selected] || "false") + '"', ' data-ax6grid-disable-selection="' + (_list[di][cfg.columnKeys.disableSelection] || "false") + '"', '>');
          for (ci = 0, cl = rowTable.rows[tri].cols.length; ci < cl; ci++) {
            col = rowTable.rows[tri].cols[ci];
            cellHeight = cfg.body.columnHeight * col.rowspan - cfg.body.columnBorderWidth;
            colAlign = col.align || bodyAlign;

            SS.push('<td ', 'data-ax6grid-panel-name="' + _elTargetKey + '" ', 'data-ax6grid-data-index="' + di + '" ', 'data-ax6grid-data-o-index="' + odi + '" ', 'data-ax6grid-column-row="' + tri + '" ', 'data-ax6grid-column-col="' + ci + '" ', 'data-ax6grid-column-rowIndex="' + col.rowIndex + '" ', 'data-ax6grid-column-colIndex="' + col.colIndex + '" ', 'data-ax6grid-column-attr="' + (col.columnAttr || "default") + '" ', function (_focusedColumn, _selectedColumn) {
              var attrs = "";
              if (_focusedColumn) {
                attrs += 'data-ax6grid-column-focused="true" ';
              }
              if (_selectedColumn) {
                attrs += 'data-ax6grid-column-selected="true" ';
              }
              return attrs;
            }(this.focusedColumn[di + "_" + col.colIndex + "_" + col.rowIndex], this.selectedColumn[di + "_" + col.colIndex + "_" + col.rowIndex]), 'colspan="' + col.colspan + '" ', 'rowspan="' + col.rowspan + '" ', 'class="' + function (_col) {
              var tdCSS_class = "";
              if (_col.styleClass) {
                if (_AX6Util2.default.isFunction(_col.styleClass)) {
                  tdCSS_class += _col.styleClass.call({
                    column: _col,
                    key: _col.key,
                    item: _list[di],
                    index: di
                  }) + " ";
                } else {
                  tdCSS_class += _col.styleClass + " ";
                }
              }
              if (cfg.body.columnBorderWidth) tdCSS_class += "hasBorder ";
              if (ci == cl - 1) tdCSS_class += "isLastColumn ";
              return tdCSS_class;
            }.call(this, col) + '" ', 'style="height: ' + cellHeight + 'px;min-height: 1px;">');

            SS.push(function (_cellHeight) {
              var lineHeight = cfg.body.columnHeight - cfg.body.columnPadding * 2 - cfg.body.columnBorderWidth;
              if (!col.multiLine) {
                _cellHeight = cfg.body.columnHeight - cfg.body.columnBorderWidth;
              }

              return '<span data-ax6grid-cellHolder="' + (col.multiLine ? 'multiLine' : '') + '" ' + (colAlign ? 'data-ax6grid-text-align="' + colAlign + '"' : '') + '" style="height:' + _cellHeight + 'px;' + (col.multiLine ? '' : 'line-height: ' + lineHeight + 'px;') + '">';
            }(cellHeight), isGroupingRow ? getGroupingValue.call(this, _list[di], di, col) : getFieldValue.call(this, _list, _list[di], di, col), '</span>');

            SS.push('</td>');
          }
          SS.push('<td ', 'data-ax6grid-column-row="null" ', 'data-ax6grid-column-col="null" ', 'data-ax6grid-data-index="' + di + '" ', 'data-ax6grid-data-o-index="' + odi + '" ', 'data-ax6grid-column-attr="' + "default" + '" ', 'style="height: ' + cfg.body.columnHeight + 'px;min-height: 1px;" ', '></td>');
          SS.push('</tr>');
        }
      }
    }
    SS.push('</table>');

    if (isScrolled && _list.length) {
      SS.push('<div style="background:repeating-linear-gradient(to bottom, ' + stripeString + ');' + 'font-size:0;' + 'line-height:0;height: ' + (_list.length - di) * _scrollConfig.bodyTrHeight + 'px;"></div>');
    }

    _elTarget.empty();
    SS = SS.join('');

    _elTarget.get(0).innerHTML = SS;

    this.$.livePanelKeys.push(_elTargetKey); // 사용중인 패널키를 모아둠. (뷰의 상태 변경시 사용하려고)
    return true;
  }
그리드 바디 영역 페인트 함수 
@param _elTargetKey
@param _colGroup
@param _bodyRow
@param _groupRow
@param _list
@param [_scrollConfig]
@returns {boolean}