2015-11-06 4 views
0

Я создаю несколько трещин, каждый из которых помещен в собственный div. Основной проблема воспроизводимости я получил:SapUi5 TreeTable отличается от отображаемого в вызове jQuery.getJSON()

  • создание таблиц непосредственно -> все выглядит нормально (см фото 1)
  • создание таблиц в пределах Asynchron JQuery вызова: первый добавлена ​​таблица становится всегда вертикальной полоса прокрутки (см изображение 2)

вот код:

var oData = { root: ...} 

// code for image 2 
jQuery.getJSON(url, function (result) { 
    createTable(oData['table1'], 'table1') 
    createTable(oData['table2'], 'table2') 
}) 

// code for image 1 
createTable(oData['table1'], 'table1') 
createTable(oData['table2'], 'table2') 

function createTable(oData, codeSample){ 
    var oTable = new sap.ui.table.TreeTable({ 
    columns: [ 
     new sap.ui.table.Column({label: "trans_class", template: "trans_class"}) 
     , new sap.ui.table.Column({label: "Checked", template: "checked"}) 
    ], 
     height: '100%', 
     selectionMode: sap.ui.table.SelectionMode.None, 
     enableColumnReordering: false, 
     expandFirstLevel: false, 
     visibleRowCount : INITIAL_ROW_COUNT_IN_TABLE, 
     visibleRowCountMode : sap.ui.table.VisibleRowCountMode.Auto, 
     toggleOpenState: function(oEvent) { 
     var isLeafExpanded = oEvent.getParameter("expanded"); 
     if(isLeafExpanded){ 
      oTable.setVisibleRowCount(oTable.getVisibleRowCount() + 2) 
      SUM_INDEX_TOGGLE = SUM_INDEX_TOGGLE + 2 
     }else{ 
      oTable.setVisibleRowCount(oTable.getVisibleRowCount() - 2) 
      SUM_INDEX_TOGGLE = SUM_INDEX_TOGGLE - 2 
     } 
     } 
    }) 

    var oModel = new sap.ui.model.json.JSONModel(); 
    oModel.setData(oData); 
    oTable.setModel(oModel); 
    sap.ui.getCore().setModel(oModel, codeSample); 
    oTable.bindRows("/root"); 
    oTable.expand(4); // expand Sum Row 

    //Bring the table onto the UI 
    oTable.placeAt(codeSample); 

}

Как исправить эту проблему. Я хочу, чтобы все мои таблицы выглядели одинаково. image 1

image 2

ответ

0

Временное решение: добавить простой TextField и скрыть его после добавления TreeTable:

addSimpleHiddenTextField(HIDDEN_TEXTFIELD) 
for(var i in config.TABLES){ 
    createTableAndPlaceIt(result[i], i, config.TABLES[i]) 
} 
hideSimpleTextField(HIDDEN_TEXTFIELD)