2013-05-29 2 views
1

в HTML Я динамически создавать таблицу:Заселите динамически создается HTML таблицу в додзё и JavaScript

function createTable() 
{ 
    var tablecontents = ""; 
    tablecontents = "<table>"; 
    tablecontents += "<tr>"; 

    for (var i = 0; i < 12; i ++) 
    { 
     tablecontents += "<td>"; 
     tablecontents += '<div data-dojo-type="com.Control" id="Control' + i + '" style="width: 143px; height: 200px;"/>' ; 
     tablecontents += "</td>"; 
    } 
     tablecontents += "</tr>"; 

    for(var z = 0; z < 12; z++) 
    { 
     tablecontents += "<tr>"; 
     tablecontents += "<td>"; 
     tablecontents += 'C'; 
     tablecontents += "</td>"; 
     tablecontents += "<td>"; 
     tablecontents += '<div data-dojo-type="com.Control" id="ControlTwo' + z + '" style="width: 40px; height: 20px;"/>' ; 
     tablecontents += "</td>"; 
     tablecontents += "<td>"; 
     tablecontents += 'B' 
     tablecontents += "</td>"; 
     tablecontents += "<td>"; 
     tablecontents += 'A' 
     tablecontents += "</td>"; 
     tablecontents += "<td>"; 
     tablecontents += '2010' 
     tablecontents += "</td>"; 
     tablecontents += "<td>"; 
     tablecontents += '<div data-dojo-type="com.Control" id="ControlThree' + z + '" style="width: 40px; height: 20px;"/>' ; 
     tablecontents += "</td>"; 
     tablecontents += "</tr>"; 
    } 
     tablecontents += "</table>"; 
     document.getElementById("graphicalData").innerHTML = tablecontents; 
} 

Я хочу, чтобы заполнить эту таблицу с данными, полученными из CSV-файла, так что я написал следующий код:

ready(function() { 

      //programmatically reading CSV from external file 
      var personStoreForGrid = new dojox.data.CsvStore({ 
       url:"datasheet.csv" 
      }); 

      //storing to DataStore 
      var objectStore = dojo.store.DataStore({ 
       store: personStoreForGrid 
      }); 

      objectStore.query().then(function(results) 
      { 
       //results contains everything from csv file 

      }); 

      createTable(); 
      parser.parse(); 
}); 

В этом случае таблица создается, прежде чем я смогу получить результаты из файла csv. Как отменить это, чтобы я мог захватить содержимое перед тем, как создавать таблицу?

Очень новый для Dojo!

ответ

1

Как уже писал

objectStore.query().then(function(results) 
{ 
    //results contains everything from csv file 

}); 

это отложенный/асинхронное действие, вам нужно создать его, когда он заканчивает что-то запрос, как

objectStore.query().then(lang.hitch(this, function(results) { 
    //results contains everything from csv file 
    this.createTable(); 
})); 

где Ланг додзё/_Образы базовых/языки

+0

похоже, это может сработать. но на самом деле все, что я сделал, было переделать мой код и включить весь мой код, который фактически заполняет таблицу в готовом виде (функция() ... это решило проблему. спасибо в любом случае! – BigBug

Смежные вопросы