Extjs 4 Treegrid 사용 소감 공유(경험 편)

3971 단어 Extjs4Treegrid
최근 EXTJS 4 의 treegrid 인 스 턴 스 를 디 버 깅 하고 물 친구 의 글 과 공식 demo 를 많이 봤 습 니 다.믿 을 만 한 것 이 하나 도 없어 서 표시 할 수 없습니다.우리 가 C++코드 를 사용 하 는 습관 이 있 는 것 처럼 EXTJS 는 마치 무정 부 토비 들 이 유지 하 는 것 이다.홈 페이지 에는 검색 상자 도 없고 자 료 를 찾 는 것 은 기본적으로 옮 겨 다 니 는 것 이 고 인공 적 인 것 이다.treegrid 를 사용 하려 면 호출 페이지 의 head 에 다음 과 같은 몇 가지 파일 을 불 러 와 야 합 니 다.
 
<link rel="stylesheet" type="text/css" href="css/ext-all.css">
<script type="text/javascript" src="ext-all.js"></script>
<script type="text/javascript" src="treegrid.js"></script>
그리고 페이지 의 body 에 div
 
&nbsp;<div id="tree-example"></div>
이상 의 공식 적 으로 이렇게 썼 습 니 다.BUT,알 이 아 픈 것 은 JS 에서 고치 지 않 으 면 실행 할 수 없습니다.treegrid.js 의 renderto 를 div 의 ID 로 바 꾸 면 됩 니 다.json 데이터 파일 과 css 파일 등 을 호출 디 렉 터 리 에 복사 하 는 것 을 기억 하 세 요.완 성 된 treegrid.js 코드 는:
 
/*
This file is part of Ext JS 4
Copyright (c) 2011 Sencha Inc
Contact: http://www.sencha.com/contact
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
*/
Ext.require([
'Ext.data.*',
'Ext.grid.*',
'Ext.tree.*'
]);
Ext.onReady(function() {
//we want to setup a model and store instead of using dataUrl
Ext.define('Task', {
extend: 'Ext.data.Model',
fields: [
{name: 'task', type: 'string'},
{name: 'user', type: 'string'},
{name: 'duration', type: 'string'}
]
});
var store = Ext.create('Ext.data.TreeStore', {
model: 'Task',
proxy: {
type: 'ajax',
//the store will get the content from the .json file
url: 'treegrid.json'
},
folderSort: true
});
//Ext.ux.tree.TreeGrid is no longer a Ux. You can simply use a tree.TreePanel
var tree = Ext.create('Ext.tree.Panel', {
title: 'Core Team Projects',
width: 500,
height: 300,
renderTo: 'tree-example',//2B SV , getbody,bo 。
collapsible: true,
useArrows: true,
rootVisible: false,
store: store,
multiSelect: true,
singleExpand: true,
//the 'columns' property is now 'headers'
columns: [{
xtype: 'treecolumn', //this is so we know which column will show the tree
text: 'Task',
flex: 2,
sortable: true,
dataIndex: 'task'
},{
//we must use the templateheader component so we can use a custom tpl
xtype: 'templatecolumn',
text: 'Duration',
flex: 1,
sortable: true,
dataIndex: 'duration',
align: 'center',
//add in the custom tpl for the rows
tpl: Ext.create('Ext.XTemplate', '{duration:this.formatHours}', {
formatHours: function(v) {
if (v < 1) {
return Math.round(v * 60) + ' mins';
} else if (Math.floor(v) !== v) {
var min = v - Math.floor(v);
return Math.floor(v) + 'h ' + Math.round(min * 60) + 'm';
} else {
return v + ' hour' + (v === 1 ? '' : 's');
}
}
})
},{
text: 'Assigned To',
flex: 1,
dataIndex: 'user',
sortable: true
}]
});
});

좋은 웹페이지 즐겨찾기