2012-03-06 9 views
0

私はsenchaを初めて使用しています。私はtreestoreとnestedListを使ってアプリを開発しています。 coldfusionコンポーネントから返されたデータを読み込めません。これはnullを示します。ここでSencha 2 - 入れ子リストにnull値を表示

は私Viewport.jsです:

Ext.define('Myapp.view.Viewport', { 
    extend: 'Ext.tab.Panel', 
    xtype:'newviewport', 
    config: { 
     fullscreen: true, 
     tabBarPosition: 'top', 
     html: 'hiiiiiiiiiii',  
     cls:'test', 
     items: [ 
       { 
        title: 'Sections', 
        iconCls: 'home',   
        xtype: 'sectionslist' 
       } 
      ] 
       } 
    }); 

マイストア:samplestore.js

Ext.define('Myapp.store.samplestore', { 
extend: 'Ext.data.TreeStore', 
config: { 
    autoLoad: true, 
    model: 'Myapp.model.sampleModel', 
    proxy: { 
     type: 'ajax', 
     url: '/sample/sample1.cfc?method=getSections',  
     reader: { 
      type: 'json', 
      rootProperty:'DATA' 
     } 
    } 
} 

});

マイモデル:sampleModel.js

Ext.define("Myapp.model.sampleModel", { 
    extend: "Ext.data.Model", 
    config: { 
     fields: [ 
      {name: 'LoginID', type: 'string'}, 
      {name: 'FIRSTNAME', type: 'string'} 
     ] 
    } 
}); 

マイsample1.cfc

<cfcomponent name="sample" output="false"> 
     <cffunction name="getSections" output="no" returnformat="json" access="remote">   
    <cfquery name="qryGetDetails" datasource="#request.dsn#"> 
     SELECT TOP 5 
      LoginID, FIRSTNAME 
     FROM 
      tblUser 
    </cfquery> 
     <cfreturn qryGetDetails> 

    </cffunction> 
</cfcomponent> 

マイSectionslist.js

Ext.define('Myapp.view.Sectionslist', { 
    extend: 'Ext.dataview.NestedList', 
    xtype: 'sectionslist', 
    config: { 
     store: 'samplestore' 
     itemTpl: [ 
        '{FIRSTNAME}<br/>' 
       ].join(''),  
     onItemDisclosure: function(record, btn, index) { 
       console.log("worked"); 
     } 
     }, 
    //getItemTextTpl: function(node) { 
      //console.log(node); 
     // return node.data.FIRSTNAME+ ':<strong></strong>'; 
    // } 
}); 

そして最後に、私のJSONデータ:

{"COLUMNS":["LOGINID","FIRSTNAME"],"DATA":[["bt","Jn"],["jr","Jy"],["b20","Best"],["jman","Jeff"],["fenad","Fn"]]} 
[ 「{FIRSTNAME}
は」 ] .join「」(:

私の問題を見つけるためのお手伝いをしてください、私は私が間違っていた場所のデータを表示することは間違っている: itemTplあるとして、私は、null値を取得していますトリガカント)、

Firstnameの代わりに、ここに何を表示する必要がありますか?私は多くの方法を試してみましたが、ない使用は、助けてください.....

答えて

0

あなたのJSONが

["bhpAgent", "Jan"], 

のような配列のコレクションを返すが、フィールド定義は、応答のようなオブジェクトのコレクションであることを期待します

{"LoginID": "bhpAgent", "FIRSTNAME": "Jan"}. 

最良の解決策が不明です。 ColdFusionで代わりにJSONオブジェクトを生成できますか?

もしそうでなければ、おそらくExt.data.reader.JSONをサブクラス化し、getResponseData()をオーバーライドします。

TreeStoreドキュメントを確認する価値があるかもしれません。そのビューにはツリー構造のデータが必要です。

+0

お返事ありがとうございます。 {{LoginID ":" bhpAgent "、" FIRSTNAME ":" Jan "}のように結果をstructフォームに変換しました。 – usershaf

+0

これはうまくいきましたか? – grumplet

+0

はい、それは働いた:) – usershaf

関連する問題