Ext 新new的 data.store对象怎么里面没有值

Ext 新new的 data.store对象怎么里面没有值、

[code="java"]

function getstore(){
var b = new Ext.data.Store( {
id:"bst",
proxy :new Ext.data.HttpProxy( {
url :__ctxPath + "/st/findFormula.do"
}),
reader :new Ext.data.JsonReader( {
root :"result",
totalProperty :"totalCounts",
fields : [ {name :"Id",type :"int"}, "Name" ]
}),
});
b.load()

return b;

}
[/code]
方法返回b之后 b里没有任何值 是空的 但是我确定后台查出来是有json数据的
我现在要获得后台查出来的那些数据怎么办
高人现身吧!

设置store proxy 对象,使用同步数据加载。
proxy:Ext.data.HttpProxy({
sync : true
})

如果使用的是3.0以下可能需要加下面代码设置同步处理

Ext.lib.Ajax.request = function(method, uri, cb, data, options) {
if (options) {
var hs = options.headers;
if (hs) {
for (var h in hs) {
if (hs.hasOwnProperty(h)) {
this.initHeader(h, hs[h], false);
}
}
}
if (options.xmlData) {
if (!hs || !hs['Content-Type']) {
this.initHeader('Content-Type', 'text/xml', false);
}
method = (method ? method : (options.method
? options.method
: 'POST'));
data = options.xmlData;
} else if (options.jsonData) {
if (!hs || !hs['Content-Type']) {
this.initHeader('Content-Type', 'application/json', false);
}
method = (method ? method : (options.method
? options.method
: 'POST'));
data = typeof options.jsonData == 'object' ? Ext
.encode(options.jsonData) : options.jsonData;
}
}
return this"sync" in options ? "syncRequest" : "asyncRequest";
}

Ext.lib.Ajax.syncRequest = function(method, uri, callback, postData) {
var o = this.getConnectionObject();

if (!o) {
    return null;
} else {
    o.conn.open(method, uri, false);

    if (this.useDefaultXhrHeader) {
        if (!this.defaultHeaders['X-Requested-With']) {
            this
                    .initHeader('X-Requested-With', this.defaultXhrHeader,
                            true);
        }
    }

    if (postData && this.useDefaultHeader
            && (!this.hasHeaders || !this.headers['Content-Type'])) {
        this.initHeader('Content-Type', this.defaultPostHeader);
    }

    if (this.hasDefaultHeaders || this.hasHeaders) {
        this.setHeader(o);
    }

    o.conn.send(postData || null);
    this.handleTransactionResponse(o, callback);
    return o;
}

}

在你使用的时候需要注意,store使用的是异步加载。直接时候的话可能数据还没载入完成。
store.on('load',function(){

})

在执行load事件才能确定数据已经载入

store.on('load',function(s,records){ //第一个参数是store。
alert(Ext.encode(s.data));//可以打印数据
})

事件函数里。有store触发。使用return没有效果。一般只是在里面写一些业务方面;

store使用的是异步数据加载。在触发load函数之后store里面是有数据了。你可以通过load函数写相应业务。或者让store使用同步数据加载。