欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

EXT數(shù)據(jù)加載的問(wèn)題

系統(tǒng) 1687 0

? ?? 最近flex3學(xué)了不少,想著開(kāi)始復(fù)習(xí)之前學(xué)過(guò)的ext,著手做一兩個(gè)項(xiàng)目。我在EXT上停留的時(shí)間不短,對(duì)基本內(nèi)容還是很清楚,對(duì)各種高級(jí)技法也有著應(yīng)用,這次希望通過(guò)做項(xiàng)目來(lái)貫穿起來(lái)。


??? EXT中數(shù)據(jù)加載是一個(gè)細(xì)節(jié)問(wèn)題,做不好會(huì)對(duì)web工程的效率影響很大,導(dǎo)致響應(yīng)緩慢等問(wèn)題。比如有這樣一個(gè)需求:在一個(gè)panel中,上半部分是班級(jí)學(xué)生列表,下半部分是是一個(gè)成績(jī)列表,當(dāng)點(diǎn)擊一行學(xué)生記錄的時(shí)候,下面會(huì)加載該學(xué)生成績(jī)。

?? ??

?? ?這時(shí)候有兩種做法,一種是點(diǎn)擊的時(shí)候 發(fā)送一個(gè)AJAX請(qǐng)求到后臺(tái),包含請(qǐng)求參數(shù),如學(xué)生id之類(lèi)。再通過(guò)DAO操作得到該學(xué)生成績(jī)列表然后返回在前臺(tái)顯示出來(lái)。還有一種做法,在學(xué)生列表加載的時(shí)候,成績(jī)列表也隨之加載,這樣當(dāng)點(diǎn)擊學(xué)生行記錄時(shí),不用查詢(xún)數(shù)據(jù)庫(kù),而是在對(duì)應(yīng)的subStore中l(wèi)oad學(xué)生的成績(jī)list。


?? ? 經(jīng)過(guò)實(shí)驗(yàn),我發(fā)現(xiàn)這兩個(gè)操作各有好壞:第一種應(yīng)該適用于當(dāng)subList中數(shù)據(jù)量很大的情況,這個(gè)時(shí)候用第二種顯然不好,將導(dǎo)致響應(yīng)極為緩慢。但是如果子表中加載的數(shù)據(jù)量很小,只有不超過(guò)10條這樣的一個(gè)小數(shù)據(jù)量,那我們不妨使用第二種。但是這種做法不容易實(shí)現(xiàn)本地分頁(yè),因?yàn)槭褂迷撟龇ǖ臅r(shí)候,點(diǎn)擊學(xué)生行記錄的時(shí)候下面的字表已經(jīng)相當(dāng)于加載一個(gè)本地?cái)?shù)據(jù),本地?cái)?shù)據(jù)比較難實(shí)現(xiàn)分頁(yè)。


?? ? 以下代碼為使用第二種方法,調(diào)用DWR中的方法。

?

?? ? ? ? ? ? ? ? ? ? ? ?currentRow = null;

?

var recordType = Ext.data.Record.create([{

name : "id",

type : "int"

}, {

name : "name",

type : "string"

}, {

name : "num",

type : "int"

}, {

name : "leader",

type : "string"

}, {

name : "students"

}]);

?

var store = new Ext.data.Store({

proxy : new Ext.data.DWRProxy(ClassDAO.getData, true),

reader : new Ext.data.ListRangeReader({

totalProperty : 'totalSize',

id : 'id'

}, recordType),

remoteSort : true,

listeners : {

load : function(store, recs) {

if (recs.length > 0) {

grid.getSelectionModel().selectFirstRow();

substore.loadData(recs[0].data.students);

}

}

}

});

?

var substore = new Ext.data.JsonStore({

fields : [{

name : 'id'

}, {

name : 'name'

}, {

name : 'sex'

}, {

name : 'num'

}, {

name : 'clazz'

}]

?

});

?

var editor = new Ext.ux.grid.RowEditor({

saveText : '保存',

cancelText:"取消",

listeners:{

afteredit:function(e){

//alert(grid.getTopToolbar().get("text").getValue());

//grid.getTopToolbar().get("text").reset();

alert(e.record.data.id*e.record.data.num);

}

}

});

?

var grid = new Ext.grid.GridPanel({

store : store,

width:400,

region : 'center',

loadMask : true,

view:new Ext.grid.GridView({

?? ? ? ? ? ? markDirty: false

?? ? ? ? }),

plugins:[editor],

tbar : new Ext.Toolbar({

?

items : [{

xtype : "button",

text : "編輯",

iconCls : "edit"

},{

xtype : "button",

text : "驗(yàn)證",

iconCls : "edit",

listeners:{

"click":function(){

var recs = store.getModifiedRecords();

//alert(recs.length);

for(var i=0;i<recs.length;i++){

//alert(recs[i].data.name);

}

}

}

},{

xtype:"textfield",

id:"text",

inputType:"text",

value:"sss"

}]

}),

bbar : new Ext.PagingToolbar({

store : store,

pageSize : 4,

displayInfo : true,

displayMsg : '顯示第 {0} - {1} 條記錄,總共 {2}條',

emptyMsg : "沒(méi)有相關(guān)記錄"

}),

columns : [new Ext.grid.RowNumberer(),{

? ? ? ?id: 'name',

header : "班級(jí)名",

width : 100,

sortable : false,

dataIndex : 'name',

editor:{

xtype: 'textfield',

?? ? ? ? ? ? ? allowBlank: false

}

}, {

header : "班級(jí)人數(shù)",

width : 150,

sortable : false,

dataIndex : 'num',

editor:{

xtype: 'numberfield',

?? ? ? ? ? ? ? allowBlank: false,

?? ? ? ? ? ? ? minValue:1,

?? ? ? ? ? ? ? maxValue:30

}

}, {

header : "班主任",

width : 150,

sortable : false,

dataIndex : 'leader',

editor:{

xtype: 'textfield',

?? ? ? ? ? ? ? allowBlank: false

?? ? ? ? ? ? ? /*regex:/^[\u4e00-\u9fa5]{2,}$/,

?? ? ? ? ? ? ? regexText:"請(qǐng)輸入中文字符"*/

}

}],

listeners : {

rowclick : function(grid, rowIndex, e) {

var rec = store.getAt(rowIndex);

if (rec) {

substore.loadData(rec.data.students);

}

}

}

});

?

var subGrid = new Ext.grid.GridPanel({

store : substore,

loadMask : true,

title : '班級(jí)學(xué)生明細(xì)',

frame : true,

region : 'south',

layout : 'fit',

split : true,

height : 150,

minSize : 175,

maxSize : 400,

columns : [{

header : "姓名",

width : 100,

sortable : false,

dataIndex : 'name'

}, {

header : "性別",

width : 150,

sortable : false,

dataIndex : 'sex'

}, {

header : "學(xué)號(hào)",

width : 200,

sortable : false,

dataIndex : 'num',

align : 'right'

}],

listeners : {

rowclick : function(grid, rowIndex, e) {

var rec = substore.getAt(rowIndex);

if (rec) {

alert(rec.data.clazz.students.length);

}

}

}

});

?

new Ext.Panel({

width : 400,

height:380,

layout : "border",

frame : true,

items : [grid, subGrid],

renderTo : "form2"

});

?

store.load({

params : {

start : 0,

limit : 4

}

});

????

?

EXT數(shù)據(jù)加載的問(wèn)題


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产综合在线视频 | 国产成人精品免费 | 久久久精品视频免费观看 | 日韩在线欧美 | 高清中文字幕视频在线播 | 美女污视频网站 | 国产欧美日韩在线播放 | 中文一区| 蜜桃官网 | wwwbnb89| 日本阿v视频高清在线 | a久久| a国产精品 | 国内精品视频 | 小明www永久在线看 国产美女一区二区三区 | 亚洲精品美女视频 | 美女国产精品 | 精品亚洲永久免费精品 | 亚洲成人一区二区 | 伊人伊人网| 久草日韩 | www一区二区三区 | 婷婷777| 青草娱乐 | 亚洲久久一区 | 午夜精品久久久久久99热7777 | 亚洲夜夜爽 | 亚洲一区二区三区高清 | 日韩一区二区在线视频 | 国产高清视频在线 | 在线观看视频亚洲 | www国产视频| 在线观看91 | 日本美女一区二区 | 激情五月婷婷色 | 一级毛片免费视频 | 亚洲成a人片77777在线播放 | 国产乱码一区二区三区 | 久久精品免费一区二区三区 | 欧美两性| 91www在线观看|