javascript - 填充在dojo和javascript中动态创建的html表

标签 javascript html dojo

在 html 中我动态创建一个表:

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 非常陌生!

最佳答案

正如你已经写的

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();
 }));

其中 lang 是 dojo/_base/lang

关于javascript - 填充在dojo和javascript中动态创建的html表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16820191/

相关文章:

javascript - 在 dojo 中使用 this 通过父类访问子方法

javascript - HTML Web 组件不使用 Shadow DOM 样式

javascript - 动画显示和隐藏登录框

html - float 和固定宽度 li 的组合

javascript - 将链接(带有弹出式 div)移动到另一个带有下拉菜单的 div

dojo - 为 JsonRestStore 设置 HTTP Accept header

javascript - 如何在 VueJS 中触发 Facebook Pixel

javascript - 用 jQuery 替换元素

jquery - 移动设备的时间选择器

javascript - 当进入回调作用域时获取对闭包 dojo 对象的访问