Ⅰ Extjs 數組怎麼自定義,並且賦值
Extjs 數組定義使用Ext.Array內置函數。
extjs4.0 Ext.Array 函數方法大全:
Ext.onReady(function(){
var array = ['1','2','3','4','1','6','7'];
Ext.Array.clean(array); //['1','2','3','4','6','7'];
Ext.Array.clone(array); // 克隆數組
Ext.Array.contains(array,'1'); //返回true 檢查數組內是否包含指定元素
var array2 = ['1','2','3','4','5','6'];
Ext.Array.difference(array,array2); //返回 存在於 array中而不存在array2中的元素 ['','7']
Ext.Array.every(array,function(str,index,array){ //遍歷數組 第二個參數執行回調函數 (當前元素,當前索引,當前數組(array)) 指定作用域 返回false 立即返回
//alert(str);
return true;
});
Ext.Array.filter(array,function(str,index,array){ //遍歷數組 第二個參數執行回調函數 (當前元素,當前索引,當前數組(array)) 指定作用域 返回值: 返回true的元素組成新數組
//alert(str);
return true;
});
var array3 = ['1','2','3','4',['1','2','3'],'6','7'];
Ext.Array.flatten(array3); //返回值:將多維數組 平鋪成一維數組
Ext.Array.forEach(array,function(str,index,array){ //單純的遍歷數組
//alert(str);
});
Ext.Array.from(array,true); //轉換給定值為數組 如果為undefined 或 null 則返回空數組 本身為數組返回數組 可迭代返回數組拷貝 單值返回值包含該值的數組
Ext.Array.include(array,'100'); //向array末尾插入100 前提是array中不存在為100的值
Ext.Array.indexOf(array,'100',0); //在數組內尋找指定值 第三個參數為起始位置 返回值:所在位置
alert(Ext.Array.intersect([array,array2])); //合並多個數組 數組元素唯一
Ext.Array.map(array,function(str,index,array){ //根據返回值組成數組
return str;
});
Ext.Array.max(array,function(s1,s2){ //返回數組中最大值 使用比較函數時返回值為負數時 小 0為相等 正數為大
return 0;
});
Ext.Array.mean([1,2,3,4,5]); //返回平均值
Ext.Array.min(array,function(s1,s2){ //返回數組中最小值 可使用比較函數
return 0;
});
var array4 = [{'a1':'a1'},{'a1':'a2'},{'a3':'a3'}];
Ext.Array.pluck(array4,'a1'); //在數組json數據中查找鍵為a1的值返回數組 (不改變數組大小)
Ext.Array.remove(array,'1'); //刪除數組中指定元素 注意:只刪除一項
Ext.Array.some(array,function(s1,s2){ //遍歷數組 返回true立即返回
return false;
});
var array5=['s','a','z','c'];
Ext.Array.sort(array5); //排序數組 默認以字元排序 可選排序函數
var array6=[1,2,3,4,5];
Ext.Array.sum(array6); //求和
Ext.Array.toArray(array6,2,4); //轉換任何可迭代的值為數組 參數 1 iterable 2 start 3 end
Ext.Array.merge(array,array6); //組合數組
Ext.Array.unique(array,array6); //組合數組 merge的別名
Ext.Array.unique(array); //獲取具有唯一元素的新數組
})
Ⅱ extjs里的treepanel的用法
TreePanel繼承自Panel,在ExtJS中使用樹控制項含有豐富的屬性和方法實現復雜的功能。其中Ext.tree.TreeNode代表一個樹節點,比較常用的屬性包括text、id、icon、checked等、非同步樹Ext.tree.AsyncTreeNode、樹載入器Ext.tree.TreeLoader。下面介紹幾個extjs中treepanel例子:
一、TreePanel基本配置參數:
//TreePanel配置參數
animate:true//展開,收縮動畫,false時,則沒有動畫效果
autoHeight:true//自動高度,默認為false
enableDrag:true//樹的節點可以拖動Drag(效果上是),注意不是Draggable
enableDD:true//不僅可以拖動,還可以通過Drag改變節點的層次結構(drap和drop)
enableDrop:true//僅僅drop
lines:true//節點間的虛線條
loader:Ext.tree.TreeLoader//載入節點數據
root:Ext.tree.TreeNode//根節點
rootVisible:false//false不顯示根節點,默認為true
trackMouseOver:false//false則mouseover無效果
useArrows:true//小箭頭
二、TreeNode的基本配置參數:
//TreeNode常用配置參數
checked:false//true則在text前有個選中的復選框,false則text前有個未選中的復選框,默認沒有任何框框
expanded:fasle//展開,默認不展開
href:"http:/www.cnblogs.com"//節點的鏈接地址
hrefTarget:"mainFrame"//打開節點鏈接地址默認為blank,可以設置為iframe名稱id,則在iframe中打開
leaf:true//葉子節點,看情況設置
qtip:"提示"//提示信息,不過要Ext.QuickTips.init();下
text:"節點文本"//節點文本
singleClickExpand:true//用單擊文本展開,默認為雙擊
三、treepanel實例:
第一個靜態樹--最簡單的樹:
Ext.onReady(function(){
varmytree=newExt.tree.TreePanel({
el:"container",//應用到的html元素id
animate:true,//以動畫形式伸展,收縮子節點
title:"Extjs靜態樹",
collapsible:true,
rootVisible:true,//是否顯示根節點
autoScroll:true,
autoHeight:true,
width:150,
lines:true,//節點之間連接的橫豎線
loader:newExt.tree.TreeLoader(),//
root:newExt.tree.AsyncTreeNode({
id:"root",
text:"根節點",//節點名稱
expanded:true,//展開
leaf:false,//是否為葉子節點
children:[{text:'子節點一',leaf:true},{id:'child2',text:'子節點二',children:[{text:"111"}]}]
})
});
mytree.render();//不要忘記render()下,不然不顯示哦
})
效果圖:
Ⅲ extjs怎麼獲取後台的數據或者是變數。。。求大神速回
1. 使用form表單提交
使用表單提交是調用了表單的submit方法,其配置項包括url、method等。這種方式能夠以JSON的形式提交參數信息。
var myform = Ext.create('Ext.form.Panel',{undefined
defaultType: 'textfield',
items:[{undefined
fieldLabel : 'Name',
name : 'name'
},{undefined
fieldLabel: 'Gender',
name : 'gender'
},{undefined
fieldLabel : 'Age',
name: 'age'
}],
buttons: [{undefined
text : 'load',
handler : function(){undefined
this.up('form').getForm().submit({undefined
url: '/request/userinfo',
method : 'POST',
success : function(form, action){undefined
console.log(form);
Ext.Msg.alert('title', 'load success');
});
}]);
2. 使用Ajax非同步提交
將上述handler方法中的內容換成一下代碼即可。在Ajax的request方法中是一個配置對象,其配置參數包括url,type,params。其中params表示要提交的參數,在此例中是從form表單中通過getValues()方法獲得的。該種方式也能將參數一JSON的方式提交到後台,與一個對象匹配。
var values = this.up('form').getForm().getValues();
Ext.Ajax.request({undefined
url:'/request/userinfo',
headers : {undefined'userHeader': 'userMsg'},
type:'POST',
params:values,
success:function(response){undefined
var data = response.responseText;
console.log(data);
console.log("success");
},
});
3. 使用Ext.data.Store
在項目中經常需要通過提交一些數據來從後台獲取相應的信息。例如,在表單中輸入某個人的id和name就可以查出它的相關信息並在前台顯示。一個關於extjs的例子如下:
//data Model
Ext.define('User',{undefined
extend: 'Ext.data.Model',
fields: [{name:'name',type:'string'},
{name:'gender',type:'string'},
{name:'age',type:'string'}
]
});
var userStore = Ext.create('Ext.data.Store',{undefined
model: 'User',
pageSize: 20,
// autoLoad : true,
proxy: {undefined
type : 'ajax', //提交數據的方式
url : '/request/userinfo',
reader : { //以json的形式讀取將要提交的數據
type : 'json',
root : 'resultList'
},
writer : {undefined
type : 'json'
},
actionMethods : {undefined
create : 'POST'
}
},
});
//grid Panel
Ext.create('Ext.grid.Panel',{undefined
store: userStore,
columns: [
{header : 'Name', dataIndex : 'name'},
{header : 'Gender', dataIndex : 'gender'},
{header : 'Age', dataIndex : 'age'}
],
height: 200,
width: 400,
renderTo: 'div2'
});
//form Panel
var myform = Ext.create('Ext.form.Panel',{undefined
defaultType: 'textfield',
items:[{undefined
fieldLabel: 'Name',
name: 'name'
},{undefined
fieldLabel: 'Gender',
name: 'gender'
},{undefined
fieldLabel : 'Age',
name : 'age'
}],
buttons: [{undefined
text: 'load',
handler: function(){undefined
var values = this.up('form').getForm().getValues();
console.log(values);
userStore.proxy.extraParams=values;
userStore.loadPage(1);
}
}
});
在handler方法中獲取form表單的參數後,賦值給userStore.proxy.extraParams,然後調用userStore.loadPage(1)。調用loadPage()方法時,會委託給proxy對象去後台獲取數據。所以對proxy的配置是核心。使用這個方式從後台獲取數據時,後台介面返回的對象應該包括一個List欄位,list中包含所需要的具體信息。比如
@ReponseBody
public UserInfoResp getUserInfo(User user) {undefined
}
UserInfoResp應該像這樣有一個List欄位
class UserInfoResp {undefined
List<User> resulltList;
}
Ⅳ extjs怎麼自定義函數
轉:
Ext JS自定義函數,令人崩潰的語法~
項目中有一段一直沒看懂,貌似是關於Ext JS中自定義函數的:
Ext.ux.MessageBox = function() {
var msgCt;
function createBox(t, s, data, i) {
…………
}
return {
…………
};
}();
函數(createBox)之後,沒有逗號,也沒有分號,直接來了個return……。我一下子就暈了。手頭能找到的兩本書中都沒有相應語法的介紹。今天偶然看到某高人的文章,頓時豁然開朗。最後大括弧後面又來一對兒括弧,這部分還是沒有搞明白,以後再來研究吧~轉載如下供查閱:
EXTJS的自定義函數,以下語句可創建一個函數:
Ext.Login=function(){
function IsLogin(){
……
}
return{
init:function(){
IsLogin();
},
Login:function(){
……
}
}
剛開始時讓我比較郁悶的是這種JS里的函數調用機制,以上代碼里,將創建一個名為Ext.Login()的對象,應該相當於一個類的意思吧,然後可在其裡面寫其他相關的方法。
在return里的為公有方法,這裡面的方法可給外部程序調用(如在HTML文件里用),而在return以外的代碼是其私有方法,只能在Ext.Login()這個對象里調用
如需要在其他頁面調用裡面的Login()方法,可直接寫
<input id="login" onclick="Ext.Login().Login()" />
如果需要在頁面載入時就調用,一般只需直接用EXTJS里的方法即可實現:
Ext.onReady(Ext.Login.init, Ext.Login);
這里的函數名並不需要加括弧,第一個參數是要調用的方法,第二個是作用域,一般寫此對象名即可。
Ⅳ ExtJs ComboBox的render事件可以有參數嗎都有什麼參數
extjs api如下:
render : ( Ext.Component this )
在組件被渲染之後觸發。
在組件被 rendered(渲染) 之後觸發。
監聽器將以如下的參數內格式被調用:
this : Ext.Component
參數只有它本身,容如果你不想這么用,你可以用combox對象中的on方法,自己寫實現function就行,api如下:
on( String eventName, Function handler, [Object scope], [Object options] ) : void
給對象添加事件處理器 (addListener的簡寫形式)
給對象添加事件處理器 (addListener的簡寫形式。)
參數:
eventName : String
監聽的事件類型
handler : Function
事件調用的方法
scope : Object
(可選)處理方法執行時的作用域 (this 的引用)。 如果被忽略。默認為觸發事件的對象。
options : Object
可選 包含處理器配置的對象。
返回值:void
Ⅵ extjs4 我想讓tree幾分鍾刷新一次,並且保持前一次展開的節點的狀態
設置定時任務,執行treeStore.load()
至於展開,取得樹的根節點,調用expand();