【问题标题】:add data to dojo datagrid将数据添加到 dojo 数据网格
【发布时间】:2012-02-23 18:30:52
【问题描述】:

我有几个与道场有关的问题。首先,我有一个从网上复制并运行的示例,它运行良好。顺便说一句,我正在 Visual Studio 2010 中开发一个 Web 应用程序。它运行良好,但我的问题是我使用来自 ajax.googleapis.com 的 url(1.5 版)并且它可以工作,但只要我使用 src= “/folder/dojo.js.uncompressed.js”与我的网络应用程序的文件夹中的本地副本(版本 1.7.1),它不起作用。关于这个的任何想法。

第二个问题是使用数据网格示例,而不是对数据网格的值进行硬编码;我想将 sql 查询的结果从数据库传递到数据网格。有人对此有想法吗?

这是显示尝试使用本地存储文件的代码:

<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

【问题讨论】:

    标签: visual-studio-2010 sql-server-2008 dojo


    【解决方案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/

    【讨论】:

    • 很抱歉回复晚了,感谢您的建议。您能否帮助了解代码的语法,因为我无法找到正在使用的本地保存的 dojo 文件的示例。请参阅上面的编辑,
    • 我在下面发布了一个后续答案(评论有字符限制,因此是一个后续答案)
    【解决方案2】:

    以下是我遵循的步骤:

    1) 从http://dojotoolkit.org/download/下载dojo工具包

    2) 使用您的应用程序根目录安装它。通常,在我的应用程序根目录中,我有一个名为 dojoroot 的目录,我在该目录下解压缩 dojo 工具包

    3) 在您的 html 中,head 部分确保您的 css 链接指向本地 dojoroot。例如:

    4) 确保您的 djConfig 设置正确: djConfig = { 解析加载:真, baseUrl: "../../../dojoroot/dojo/" }; 请注意,baseUrl 很重要——它是 dojo.js 所在的目录

    5) 对于 dojo.js src 包含,确保路径正确。例如: 如果有错误,firebug 中的 Net 选项卡会显示它们 - 它们通常与路径问题有关

    【讨论】:

    • 太棒了 - 乐于助人。您能否将此答案标记为已接受,以便将其记录为已解决。谢谢
    • 嗨,您知道任何简单的数据网格示例吗?我已经从示例中完全复制了源代码,但仍然出现错误。
    • 抱歉,还有一个简单的问题;你有一个博客或网站,你可以在其中贡献道场的东西吗?您对这些事情的解释比 dojotoolkit 网站好得多。
    猜你喜欢
    • 2010-12-15
    • 2023-04-03
    • 2013-03-31
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多