1、Ext.data.Store.load();方法是異步的,下面的方式獲得的reCount始終是0,因為還沒等後台的方法執行完就賦值了,此時store的record還沒獲得值。
var testStore = new Ext .data.GroupingStore({
proxy : #new##Ext.data.HttpProxy({
#
# reader :
#new Ext.data.JsonReader({
## root :
'hstamcx', totalProperty : "results"
,
fields : ["id"
,
#"value"#"id",#"value"#]
})
});Ext.onReady(
function(){
## Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget =
'side'##; testStore.load (); # var reCount = testStore.getCount();
#var
port = new Ext.Viewport({
layout :
'auto',
frame :
true
2、如果想要對載入的值進行處理,必須將後續處理寫在回調函數中。
###Ext.onReady(#########function#########(){############ ### Ext.QuickTips.init();######
Ext.form.Field.prototype.msgTarget = 'side';
testStore.load({
callback : function(r, options, var reCount = testStore.getCount();
##
var
##port =
#new
Ext.Viewport({ layout : 'auto', frame :
true,T ## ## });
});此時可以取得reCount的值,且 callback : function(r, options, success)的r就是store載入查到的資料。
但依然存在問題:r的資料值只能在回呼函數裡面使用,在callback函數裡既不能給外部的其他元素賦值,也沒有辦法將r資料傳到外面去
3、如果想在js頁面向後台發送請求,並在外面使用後台返回的資料值,可以使用
Ext.Ajax.request,並將請求方式設定成同步,接收資料的變數要定義在
Ext.Ajax.request外面
var
cancelMode;
Ext.Ajax.request({ url:
'',## ##,
sync:
true, //同步要求
success: function
(response) {##(response) {
var response = Ext. ## cancelMode = = response.hstamcx[0].param_value;
# });
此時就可以在外面使用
Ext.Ajax.request的請求所獲得的資料了,例如alert(
cancelMode
);
後台程式碼範例:此範例是舉個大概例子,並不是完整程式碼
public void
#getData(
HttpServletResponse response#)##{## #)##{## TestData td = TestDataDao.getTestdata() TestData td = TestDataDao.getTestdata() TestData td = TestDataDao.getTestdata() TestData td = TestDataDao.getTestdata() TestData td = TestDataDao.getTestdata()ao.getTestdata() ; String message =
"{name:"
+ #td
.getName()##+
#",id:" + td.getId()+ "}"; #PrintWriter
out=response.getWriter();
######################################################################################################################################################## # out.flush();############### }##########################################################################################################################
以上是ExtJs非同步無法向外傳值和賦值該如何解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!