JSONを所定の形式で生成する外部ソースがあります。私はそのデータにアクセスするためにScriptTagProxyを使用する必要があります。データのフォーマットは(2レコード):ExtJSでは、jsonreaderをさまざまなjson入力フォーマット用に定義する方法はありますか?
{
"COLUMNS":["KEDBID","EMPID","KE","SOLUTION","ATTACH_KE","ATTACH_SOLUTION"],
"DATA":[
[1,36661,"While adding a new user, if his\/her profile is missing, it could be LDAP server issue.","Contact Mr. ABC from infra team to get user's profile corrected on server","screenshots.jpg","conacts.doc"],
[2,36661,"The error code # 123445 is trivial that may occur at particular time.","To resolve this issue, we will need to ask DBA team to refresh database. That will fix this type of errors","NA","NA"]
]
}
このデータにjsonreaderを定義する方法はありますか?
UPDATE
が1より多くのケースを追加:私のJSONのようである間
{ROOT: [ {field1:data1,field2:data1},{field1:data2,field2:data2}]}
:私が見てきたように、そのルートは次のようにする必要があります は、同様に、私たちはjsonreader用を持つことができます;
{"ROWCOUNT":8,
"COLUMNS":["CATID","CATEGORY"],
"DATA":{"CATID":[1,2,3,4,5,6,7,8],"CATEGORY":["Optimization","Automation","Process Improvement","Tool","Other","Another One","ThisHas'","More^[email protected]#(){}"]}}
ここで1 - >最適化、2 - >オートメーション、3 - >プロセス改善等
基本的に私は、クエリオブジェクトをシリアル化することにより、ColdFusionのクエリオブジェクトからデータを戻す必要があります。 CF問合せの直列化は、上記の2つの形式でデータを戻すことができます。
私はまだExt Worldを新しくしています!いくつかのサポートを得ることを願っています。
よろしく、 Tushar Saxena
以下は、私が問題に直面しているコードです。データはComBoxでは利用可能なので、店頭に出ていますが、各機能や他の手段でデータを読み取ることはできません。つまり、店舗内のデータはコンポーネントにのみ供給できますか?別の例では、loadDATA()を使用して、シンプルストア(ArrayStore)で手動でデータを作成しました。
ADD()を使用してロードした後にレコードを1つ追加すると、それぞれの関数が1回実行され、追加したデータが表示されます。どうして!!!
非常に基本的なコンセプトが欠けているかもしれません。
本当に応答が良いでしょうか。
var proxy = new Ext.data.ScriptTagProxy({
url: 'http://127.0.0.1:8500/extex/kebyid.cfm',
method: 'POST'
});
var rec = Ext.data.Record.create([
{name: 'EMPID', mapping: 1},
{name: 'KE', mapping: 2},
{name: 'SOLUTION', mapping: 3},
{name: 'ATTACH_KE', mapping: 4},
{name: 'ATTACH_SOLUTION', mapping: 5}
]);
var myReader = new Ext.data.ArrayReader({
idIndex: 0,
root: 'DATA'
}, rec);
var store = new Ext.data.ArrayStore({
proxy: new Ext.data.HttpProxy({
url: '/extex/kebyid.cfm',
method: 'POST'
}),
autoSave: true,
autoLoad: true,
root: 'DATA',
fields: [
{name: 'KEID', mapping: 0},
{name: 'EMPID', mapping: 1},
{name: 'KE', mapping: 2},
{name: 'SOLUTION', mapping: 3},
{name: 'ATTACH_KE', mapping: 4},
{name: 'ATTACH_SOLUTION', mapping: 5}
]
});
store.each(function(){
alert('!!!!'); //**************NOT WORKING
});
var catCB = new Ext.form.ComboBox({
fieldLabel: 'Category',
layout:'absolute',
x: 100,
y: 5,
store: store, //************* DATA IS THERE AS STORE IS PROVIDING DATA TO COMBOBOX
emptyText:'Select Category...',
valueField : 'KEID',
displayField : 'KE',
hiddenName : 'category',
hiddenvalue : 'None',
mode: 'local',
editable : false,
lastQuery: '',
renderTo: Ext.get("d1"),
listeners: {
'beforequery': function(qe){
qe.forceAll = true;
}}
});
あなたのためのオプションがあるかどうかは分かりませんが、CFQueryReader拡張機能をチェックしてみることもできます。 (http://cfqueryreader.riaforge.org/)ExtJS 4では動作しないと思いますが、2/3で使用していてとてもうまく動作します。 – Jason
こんにちはジェイソン...あなたの応答に感謝..私は確かにいくつかの点で同じを使用します。 –