我试图在点击按钮时显示一个dojo网格。 这是单击按钮后调用的函数:
function initAndDisplayDataGtrid(){
var dataStore = new dojox.data.CsvStore({url: path});
var chartDivNode=dojo.create("div");
chartDivNode.setAttribute("id","chartDivId");
chartDivNode.setAttribute("class", "toggle_container");
var grid = new dojox.grid.DataGrid({
query: {},
store: dataStore,
autoWidth:"2",
autoHeight:"5",
columnReordering:true,
structure: chartLayout,
noDataMessage: localizedLabel.NO_RESULTS
});
grid.placeAt("chartDivId");
grid.startup();
}
但是当我签入萤火虫时,这会引发错误:TypeError: _3d6 is null
。
此时不确定可能为null。
答案 0 :(得分:1)
在您提供的代码中,您可以动态创建一个新元素,然后将其称为“chartDivId”。然后执行“placeAt”调用,将新创建的网格作为“chartDivId”的子项。但是,placeAt调用搜索文档并且找不到“chartDivId”,因为它尚未作为整体附加到文档中。
请参阅以下Dojo文档,了解如何创建新元素并将其插入页面。
http://dojotoolkit.org/reference-guide/1.7/dojo/create.html
似乎dojo.create()方法有参数。第一个是要创建的元素的类型,第二个是您可能希望传递的任何选项...但第三个是文档中应该附加新元素的位置。