2012-01-23 1 views
1

Im Dojo 1.7.1 dojo.store.JsonRest를 사용하여 데이터로 EnhancedGrid를 채 웁니다. 그러나 Firebug를 사용하면 시작시 또는 애프터 워킹 중 에 대한 쿼리를 보지 못했습니다. 테이블은 비어 있습니다.Dojo를 사용하여 쿼리가 보내지지 않습니다. Json Rest Store with Enhanced DataGrid

개요 : 향상된 그리드와 JsonRest 스토어가 선언적으로 생성됩니다. Store가 GET 기능이있는 REST 서비스를 사용하도록 구성되었으며 은 1 요소가있는 Json Array를 반환합니다. 버튼은 시작 후 쿼리가 전송되는지 테스트하기 위해 Grids 필터 함수를 호출합니다.

서비스는 다음과 같이 정적 JSON 문자열을 반환 : 새로운

<html> 
<head> 
    <title>Rest Test</title> 
    <style type="text/css"> 
     @import "js/dojo/resources/dojo.css"; 
     @import "js/dijit/themes/claro/claro.css"; 
     @import "js/dojox/grid/enhanced/resources/claro/EnhancedGrid.css"; 
     @import "js/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css"; 
    </style> 
    <script type="text/javascript" 
     src="js/dojo/dojo.js" 
     data-dojo-config="parseOnLoad:true"></script> 
    <script type="text/javascript"> 
     dojo.require("dijit.form.Button"); 
     dojo.require("dijit.form.TextBox"); 
     dojo.require("dojox.grid.EnhancedGrid"); 
     dojo.require("dojox.grid.enhanced.plugins.DnD"); 
     dojo.require("dojox.grid.enhanced.plugins.NestedSorting"); 
     dojo.require("dojox.grid.enhanced.plugins.IndirectSelection"); 
     dojo.require("dojo.store.JsonRest"); 

     dojo.addOnLoad(function(){ 
      dojo.connect(dijit.byId("filterButton"),"onClick",function(){ 
       dijit.byId("nameTable").filter("*",true); 
      }); 
     }); 
    </script> 
</head> 
<body class="claro"> 
    <button id="filterButton" 
     data-dojo-type="dijit.form.Button"> 
     Filter Table 
    </button> 
    <span id="nameStore" 
     data-dojo-type="dojo.store.JsonRest" 
     data-target="http://localhost:8080/MyApp/rest/service3"/> 
    <table id="nameTable" 
     style="height:200px;" 
     data-store="nameStore" 
     data-dojo-type="dojox.grid.EnhancedGrid" 
     data-dojo-props="plugins:{dnd: true, nestedSorting: true, indirectSelection: true}" > 
     <thead> 
      <tr> 
       <th data-field="id" width="5%">ID</th> 
       <th data-field="firstname" width="45%">Vorname</th> 
       <th data-field="lastname" width="50%">Nachname</th> 
      </tr> 
     </thead> 
    </table> 
</body> 
</html> 

임 평안한 웹 서비스에 내가 도움이 해결 부탁드립니다 :

[{id:'1',firstname:'John',lastname:'Doe'}] 

소스 코드는 여기에있다.

답변

1

이것은 유일한 문제는 아니지만 이전 EnhancedGrid를 사용하지만 ObjectStore가없는 최신 dojo.store.JsonRest를 사용하고 있음을 확인했습니다. 자세한 내용은 this page을 참조하십시오. 여기 추출물 :

1.6 데이터 그리드는 여전히 dojo.data API를 기반으로, 그래서 우리는 데이터 그리드에 우리 가게를 연결 dojo.data.ObjectStore 어댑터를 사용합니다.

+0

네, 실제로이 문제는 내 문제의 대부분이 될 수 있지만 dojo.data.ObjectStore 어댑터를 사용하면 내 코드가 여전히 작동하지 않으므로 더 많은 문제를 해결해야합니다. – elfwyn