2012-02-23 113 views
0

我有幾個與dojo相關的問題。首先,我有一個例子,我從網上覆制並運行它,它完美地工作。順便說一句,我在Visual Studio 2010中的web應用程序工作。它運行良好,但我的問題是,我使用從ajax.googleapis.com urls(版本1.5),它的工作原理,但只要我使用src = 「/folder/dojo.js.uncompressed.js」與本地副本(版本1.7.1)位於我的Web應用程序的文件夾中,但不起作用。任何關於這個的想法。將數據添加到dojo數據網格

第二個問題是使用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中/格/ DataGrid.js

回答

1

爲了使它在本地工作,檢查你的djConfig和腳本包括道場,以確保路徑是正確的,尤其是的baseUrl

djConfig = { 
      parseOnLoad: true, 
      baseUrl: "../dojoroot/dojo/" 
      } 

也確保你包括正確的樣式表(所有包括和樣式表必須指向相同的dojo版本)

檢查螢火蟲的Net標籤以查看URL中的任何錯誤

關於你的第二個問題,dojo有一個數據存儲的概念 - 這些是客戶端(javascript)端數據的持有者。您的服務器端可以以JSON(首選),XML或任何其他格式返回查詢結果。 客戶端(javascript/html)可以使用AJAX獲取這些數據並將其呈現在數據網格中。

道場有花哨的商店,如支持分頁的QueryReadStore /惰性加載

一個良好的開端是道場夜間測試:

http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/

+0

抱歉,對於遲到的迴應並感謝您的建議。您能否幫助我使用代碼的語法,因爲我一直無法找到正在使用的本地保存的dojo文件的示例。請參閱上面的編輯, – vbNewbie 2012-02-29 17:27:18

+0

我已經在下面發佈了一個跟進答案(評論有一個字符限制,因此跟進答案) – 2012-03-03 00:32:39

1

下面是我遵循的步驟:

1)從http://dojotoolkit.org/download/下載dojo工具包

2)安裝它與你的應用程序根。通常,在我的應用程序根目錄中,我有一個名爲dojoroot的目錄,在該目錄下,我解壓了dojo工具包

3)在您的html頭部部分中,確保您的css鏈接指向本地dojoroot。對於xample:

4)確保您的djConfig設置正確: djConfig = { parseOnLoad:真實, 的baseUrl: 「../../../dojoroot/dojo/」 }; 請注意,baseUrl很重要 - 它是dojo.js所在的目錄

5)對於dojo.js src include,請確保路徑正確。例如: 如果出現錯誤,螢火蟲中的Net標籤會顯示它們 - 它們通常與路徑問題有關

+0

再次感謝,最終想通了。 – vbNewbie 2012-03-05 18:10:47

+0

很棒 - 樂於幫忙。您能否將此答案標記爲已接受,以便將其記錄爲已解決。謝謝 – 2012-03-06 18:51:39

+0

你好,你知道任何簡單的數據網格的例子。我已經從示例中完全複製了源代碼,但仍然出現錯誤。 – vbNewbie 2012-05-22 20:41:25