我有几个与道场有关的问题。首先,我有一个我从网上复制并运行它的例子,它完美无缺。顺便说一下,我正在使用Visual Studio 2010中的Web应用程序。它运行正常,但我的问题是我使用了ajax.googleapis.com中的urls(版本1.5),但是只要我使用src = “/folder/dojo.js.uncompressed.js”与我的网络应用程序中的文件夹中的本地副本(版本1.7.1),它不起作用。对此有任何想法。
第二个问题是使用datagrid示例,而不是硬编码datagrid的值;我想将sql查询的结果从数据库传递给datagrid。有没有人有这方面的想法?
以下是显示尝试使用本地存储文件的代码:
<title>The Simplest Dojo DataGrid Example of All Time</title>
<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css" />
<link rel="stylesheet" type="text/css"
href="/Styles/Grid.css" />
<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/grid/
resources/claroGrid.css" />
</head>
<body class="claro">
<div style="width: 600px; height: 200px">
<table id="billsGrid" dojoType="dojox.grid.DataGrid">
<thead>
<tr>
<th field="number">Number</th>
<th field="name">Name</th>
<th field="position">Position</th>
<th field="victories" width="180px">Super Bowl Victories</th>
</tr>
</thead>
</table>
</div>
<script type="text/javascript"
src="/Styles/dojo.js.uncompresses.js"
djConfig="parseOnLoad:true"></script>
<script type="text/javascript">
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
</script>
<script type="text/javascript">
dojo.ready(function () {
var theGreatestTeamOfAllTime = {
items: [{
"number": "12",
"name": "Jim Kelly",
"position": "QB",
"victories": "0"
},
{
"number": "34",
"name": "Thurman Thomas",
"position": "RB",
"victories": "0"
},
{
"number": "89",
"name": "Steve Tasker",
"position": "WR",
"victories": "0"
},
{
"number": "78",
"name": "Bruce Smith",
"position": "DE",
"victories": "0"
}
],
identifier: "number"
};
var dataStore =
new dojo.data.ItemFileReadStore(
{ data: theGreatestTeamOfAllTime }
);
var grid = dijit.byId("billsGrid");
grid.setStore(dataStore);
});
</script>
</body>
</html>
这不适用于jscript错误的出现。
无法加载dojox / grid / DataGrid.js
答案 0 :(得分:1)
要使其在本地工作,请检查djConfig并使用dojo脚本包含以确保路径正确,尤其是baseUrl
djConfig = {
parseOnLoad: true,
baseUrl: "../dojoroot/dojo/"
}
还要确保包含正确的样式表(所有包含和样式表必须指向相同的dojo版本)
检查firebug中的Net选项卡以查看URL中的任何错误
关于你的第二个问题,dojo有一个数据存储的概念 - 这些是数据的客户端(javascript)方持有者。您的服务器端可以以JSON(首选),XML或任何其他格式返回查询结果。 客户端(javascript / html)可以使用AJAX获取此数据并在数据网格中呈现它。
dojo有一些花哨的商店,例如queryreadstore,支持分页/延迟加载
开始的好地方是道场的夜间测试:
http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/
答案 1 :(得分:1)
以下是我遵循的步骤:
1)从http://dojotoolkit.org/download/
下载dojo工具包2)使用您的应用程序root安装它。通常,在我的应用程序根目录中,我有一个名为dojoroot的目录,在该目录下我解压道愿工具箱
3)在你的html中,head部分确保你的css链接指向本地dojoroot。例如:
4)确保你的djConfig设置正确: djConfig = { parseOnLoad:是的, baseUrl:“../../../dojoroot/dojo/” }; 请注意,baseUrl很重要 - 它是dojo.js所在的目录
5)对于dojo.js src include,确保路径正确。例如: 如果有错误,firebug中的Net选项卡将显示它们 - 它们通常与路径问题相关