Dojo不工作了
我是dojo的新手,以下是我的代码:Dojo不工作了,dojo,dijit.layout,Dojo,Dijit.layout,我是dojo的新手,以下是我的代码: <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/resources/dojo.css"></link> <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/resources/dojo.css"></link>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dijit/themes/tundra/tundra.css"></link>
<link rel="stylesheet" type="text/css" href="../../../../resources/themes/default/styles/layout.css" th:href="@{/resources/default/styles/layout.css}"></link>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js" data-dojo-config="parseOnLoad:true"></script>
<script type="text/javascript" src="../../../resources/dev/scripts/Spring.js" th:src="@{/resources/spring/Spring.js}"></script>
<script type="text/javascript" src="../../../resources/dev/scripts/Spring-Dojo.js" th:src="@{/resources/spring/Spring-Dojo.js}"></script>
<div id="gridContainer" style="width: 100%; height: 400px;"></div>
<script type="text/javascript">
dojo.require('dojo.store.JsonRest');
dojo.require('dijit.layout.ContentPane');
dojo.require("dijit.form.Button");
dojo.require('dojox.grid.DataGrid');
dojo.require('dojo.data.ObjectStore');
dojo.require('dijit.form.TextBox');
dojo.require('dojox.data.AndOrReadStore');
dojo.require('dojo._base.xhr');
dojo.require('dojo.json')
dojo.require('dojo.domReady');
dojo.ready(function() {
var appLayout = new dijit.layout.ContentPane({
id: "appLayout"
}, "appLayout");
var textBox = new dijit.form.TextBox({
name: "searchbox",
placeHolder: "Search ..."
});
textBox.placeAt('appLayout');
appLayout.placeAt('gridContainer');
appLayout.startup();
});
</script>
任何帮助都将不胜感激。你在做一些奇怪的事情。我的假设是,你想要一个
文本框
在内容窗格
中,如果我不对,那么忘记下面的答案
此代码中有几个错误:
创建appLayout
contentpane时,您提供了第二个参数(用于将“appLayout”
放入)。此参数用于定义DOM节点(或DOM节点的ID)这应该用于将contentpane放置在。您没有ID为appLayout
的DOM节点。有关更多信息,请查看,其中第二个参数是srcNodeRef
。解决方法是将此参数保留为空
第二个错误是,您甚至在将ContentPane
放在DOM本身并启动之前,就将TextBox
放在ContentPane
中。因此,重新安排代码,使ContentPane
首先放在网格容器中会起作用
完整的代码,包括更改:
dojo.require('dojo.store.JsonRest');
dojo.require('dijit.layout.ContentPane');
dojo.require("dijit.form.Button");
dojo.require('dojox.grid.DataGrid');
dojo.require('dojo.data.ObjectStore');
dojo.require('dijit.form.TextBox');
dojo.require('dojox.data.AndOrReadStore');
dojo.require('dojo._base.xhr');
dojo.require('dojo.json')
dojo.require('dojo.domReady');
dojo.ready(function() {
var appLayout = new dijit.layout.ContentPane({
id: "appLayout"
});
appLayout.placeAt('gridContainer');
appLayout.startup();
var textBox = new dijit.form.TextBox({
name: "searchbox",
placeHolder: "Search ..."
});
textBox.placeAt('appLayout');
});
或者作为一个整体。
可能不需要启动就可以放置文本框,但现在代码的分组要好一点
我还建议您将代码更新为使用异步语法(Dojo 1.7+),因为您使用的语法从1.7开始就被弃用了,而且由于您使用的是1.9,我认为使用旧语法编写新代码没有任何好处,因为它在Dojo 2.0中不起作用
dojo.require('dojo.store.JsonRest');
dojo.require('dijit.layout.ContentPane');
dojo.require("dijit.form.Button");
dojo.require('dojox.grid.DataGrid');
dojo.require('dojo.data.ObjectStore');
dojo.require('dijit.form.TextBox');
dojo.require('dojox.data.AndOrReadStore');
dojo.require('dojo._base.xhr');
dojo.require('dojo.json')
dojo.require('dojo.domReady');
dojo.ready(function() {
var appLayout = new dijit.layout.ContentPane({
id: "appLayout"
});
appLayout.placeAt('gridContainer');
appLayout.startup();
var textBox = new dijit.form.TextBox({
name: "searchbox",
placeHolder: "Search ..."
});
textBox.placeAt('appLayout');
});