2011-07-04 6 views
0

ItemFileReadStoreを使用してFilteringSelect DJOコンポーネントにデータを表示できません。 ItemFileReadStoreを使用してFilteringSelect DOJOコンポーネントにデータを表示できません

<html> 
<head> 

    <link rel="stylesheet" type="text/css" 
href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css"/> 

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js" 
djConfig="parseOnLoad: true"> 
</script> 
<script> 

dojo.require("dijit.form.DateTextBox"); 
dojo.require("dojox.layout.TableContainer"); 
dojo.require("dijit.form.Button"); 
dojo.require("dijit.form.FilteringSelect"); 
dojo.require("dojo.data.ItemFileReadStore"); 
dojo.require("dijit.form.ComboBox"); 

</script> 
<script> 

function callMe() 
{ 


} 

</script> 
    </head> 
    <body class="claro"> 

<div dojoType="dojo.data.ItemFileReadStore" jsId="orgStore" url="http://localhost:8099/Hi/MyServlet"></div> 
<div dojoType="dijit.form.FilteringSelect" id="selectaccount" store="orgStore" name="groupId" id="groupId" label="Select Account:" >MyCombo</div> 
</body> 
</html> 

を助けてくださいこれは私のサーブレットプログラムである:

import org.json.JSONObject; 


public class MyServlet extends HttpServlet { 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     System.out.println("Saiiiiiiiiiiiiii"); 
      response.setContentType("text/x-json;charset=UTF-8");   
      response.setHeader("Cache-Control", "no-cache"); 

     List list = new ArrayList(); 

     for(int i =0 ;i<=10;i++) 
     { 
      list.add("Test"); 
     } 

     JSONObject json = new JSONObject(); 
     response.getWriter().write(json.toString()); 


    } 



} 
+0

あなたのサーブレットはItemFileReadStoreが期待する形式で出力を生成していない、手動http://dojotoolkit.org/reference-guide/dojo/data/ItemFileReadStore.html#input-data-formatを参照してください。 – Frode

+0

また、なぜ同じ質問を何度も聞いていますか? 6557356、6558980、6556963、および6502900はすべてこれとほぼ同じです。 – Frode

答えて

1

あなたのサーブレットは次の形式で出力JSONデータする必要があります

{ 
    label : "name", 
    items : [ 
     {name : "Name1"}, 
     {name : "Name2"} 
    ] 
} 

はあなたが使用JSONライブラリを使用しますサーブレットはこの種のjsonデータを生成します。

その後、searchAttr属性をdijit.form.FilteringSelectと指定して、ストア内のこの属性をフィルタリングするように指定します。

<div dojoType="dijit.form.FilteringSelect" id="selectaccount" store="orgStore" name="groupId" id="groupId" searchAttr="name" label="Select Account:" >MyCombo</div> 
+0

ありがとうございます。 – Pawan

関連する問題