>  기사  >  웹 프론트엔드  >  ExtJS 2.0 GridPanel 기본 테이블 간결한 Tutorial_extjs

ExtJS 2.0 GridPanel 기본 테이블 간결한 Tutorial_extjs

WBOY
WBOY원래의
2016-05-16 18:26:351080검색

ExtJS의 테이블 기능은 정렬, 캐싱, 드래그, 특정 열 숨기기, 행 번호 자동 표시, 열 요약, 셀 편집 및 기타 실용적인 기능을 포함하여 매우 강력합니다.
이 테이블은 Panel에서 상속된 Ext.grid.GridPanel 클래스에 의해 정의되며 xtype은 그리드입니다. ExtJS에서 테이블 그리드는 열 정의 정보를 포함해야 하며 테이블의 데이터 저장소 저장소를 지정해야 합니다. 테이블의 컬럼 정보는 Ext.grid.ColumnModel 클래스에 의해 정의되며, 테이블의 데이터 저장 공간은 Ext.data.Store에 의해 정의됩니다. 구문 분석된 데이터.
먼저 테이블을 활용한 가장 간단한 코드를 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.

Ext.onReady(function(){
var data=[ [1, 'EasyJWeb', 'EasyJF','www.baidu.com'],
[2, 'jfox', '희후','www.jb51.net'],
[3, 'jdon', 'jdon','s.jb51.net'],
[4, 'springside', 'springside', 'tools .jb51.net'] ];
var store=new Ext.data.SimpleStore({data:data,fields:["id","name","organization","homepage"]});
var Grid = new Ext.grid.GridPanel({
renderTo:"hello",
title:"중국 Java 오픈 소스 제품 및 팀",
height:150,
width: 600,
열:[{header:"프로젝트 이름",dataIndex:"name"},
{header:"개발팀",dataIndex:"organization"},
{header:"웹사이트" ,dataIndex: "homepage"}],
store:store,
autoExpandColumn:2
})
})

위 코드를 실행하여 simple 테이블은 아래와 같습니다.
ExtJS 2.0 GridPanel 기본 테이블 간결한 Tutorial_extjs
위 코드에서 첫 번째 줄 "var data=..."는 테이블에 표시할 데이터를 정의하는 데 사용되며, 이는 [ ][] 2차원 배열 ; 두 번째 줄 "var store=..."는 데이터 저장소를 만드는 데 사용됩니다. 이는 GridPanel이 사용해야 하는 구성 속성입니다. 2차원 배열, JSon 객체 배열, xml 텍스트) 등을 ExtJS 데이터 레코드 세트 Record로 변환합니다. 다음 장에서 데이터 저장소 저장소를 구체적으로 소개하겠습니다. 세 번째 줄 "vargrid = new Ext.grid.GridPanel(...)"은 테이블을 생성하는 역할을 하며, 열 구성 속성은 데이터 요소의 각 행을 나타냅니다. 테이블의 정보 열을 설명합니다. 열 정보에는 열 헤더 표시 텍스트(header), 열에 해당하는 레코드 세트 필드(dataIndex), 열 정렬 가능 여부(sorable), 열 렌더링 기능(renderer)이 포함됩니다. 너비(width), 서식 정보(format) 등. 위 예시에서는 header와 dataIndex만 사용했습니다.
테이블의 정렬 및 숨김컬럼 기능을 간단히 살펴보고, 위 코드를 간단히 수정하면 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

Ext.onReady(function(){
var data=[ [1, 'EasyJWeb', 'EasyJF ','www.baidu.com'],
[2, 'jfox', 'huihoo','www.jb51.net'],
[3, 'jdon', 'jdon','s .jb51.net'],
[4, 'springside', 'springside','tools.jb51.net'] ]
var store=new Ext.data.SimpleStore({data:data,fields :["id","name ","organization","homepage"]});
var colM=new Ext.grid.ColumnModel([{header:"프로젝트 이름",dataIndex:"name",sortable :true},
{ header:"개발팀",dataIndex:"organization",sortable:true},
{header:"Website",dataIndex:"homepage"}])
vargrid = new Ext.grid.GridPanel( {
renderTo:"hello",
title:"중국 Java 오픈 소스 제품 및 팀",
height:200,
width:600,
cm:colM,
store: store,
autoExpandColumn:2
})
})

열을 생성하려면 new Ext.grid.ColumnModel을 직접 사용하세요. 테이블의 정의 정보 "Project Name" "및 "Development Team" 열에서 "sortable" 속성을 "true"로 추가하여 위 코드를 실행하면 해당 열을 정렬할 수 있음을 나타냅니다. 그림 xxx 쇼에 표시된 것처럼 "프로젝트 이름" 또는 "개발 팀" 누르기를 지원하는 테이블을 가져옵니다.
ExtJS 2.0 GridPanel 기본 테이블 간결한 Tutorial_extjs
(프로젝트 이름으로 정렬)
ExtJS 2.0 GridPanel 기본 테이블 간결한 Tutorial_extjs
(정렬 가능한 목록 헤더 뒤의 작은 버튼을 누르면 작업 메뉴가 팝업됩니다)
ExtJS 2.0 GridPanel 기본 테이블 간결한 Tutorial_extjs
( 어떤 열을 숨길지 지정할 수 있습니다.
또한 각 열의 데이터 렌더링 방법을 직접 정의할 수도 있습니다. 예를 들어 위 표에서는 사용자가 표에 있는 URL을 클릭하여 직접 열 수 있기를 바랍니다. 이러한 오픈소스 팀의 웹사이트, 즉 URL 열에 슈퍼링크를 추가해야 합니다. 다음 코드는 이 기능을 구현합니다.

코드 복사 코드는 다음과 같습니다.

function showUrl(value)
{
return "" value "";
}
Ext.onReady(function(){
var data=[ [1, 'EasyJWeb', 'EasyJF','www.baidu.com'],
[2, 'jfox', 'huihoo','www.jb51.net'],
[3, 'jdon', 'jdon','s.jb51.net'],
[4, 'springside', 'springside','tools.jb51.net'] ]
var store=new Ext.data.SimpleStore( {data:data,fields:["id","name","organization","homepage"]})
var colM=new Ext.grid.ColumnModel([{header:"프로젝트 이름",dataIndex :"name",sortable:true},
{header:"개발팀",dataIndex:"organization",sortable:true},
{header:"website",dataIndex:"homepage",renderer: showUrl}]);
vargrid = new Ext.grid.GridPanel({
renderTo:"hello",
title:"중국 Java 오픈 소스 제품 및 팀",
height:200,
너비:600,
cm:colM,
store:store,
autoExpandColumn:2
})
[html]

위 코드는 "URL" 열을 정의할 때 추가 렌더러 속성, 즉 {header: "URL", dataIndex: "homepage", renderer: showUrl}이 있다는 점을 제외하면 이전 예제와 크게 다르지 않습니다. showUrl은 전달된 값 매개변수를 기반으로 태그가 포함된 HTML 조각을 반환하는 콘텐츠를 포함하는 맞춤 함수입니다. 위 코드를 실행하면 아래와 같은 결과가 표시됩니다.

ExtJS 2.0 GridPanel 기본 테이블 간결한 Tutorial_extjs
사용자 정의 열 렌더링 기능을 사용하면 셀에 필요한 모든 종류의 정보를 표시할 수 있지만 브라우저에서 처리할 수 있습니다. html을 사용할 수도 있습니다. .
보조 어레이 외에도 테이블에 다른 형식으로 데이터를 표시할 수 있나요? 대답은 '예'입니다. 테이블 데이터 데이터가 다음 형식으로 정의되어 있다고 가정해 보겠습니다.

[code]
var data=[{id:1,
name:'EasyJWeb',
조직:'EasyJF',
홈페이지:'www.baidu.com'},
{id:2,
이름:'jfox',
조직:'huihoo',
홈페이지:'www.jb51.net'},
{id:3,
이름:'jdon',
조직:'jdon',
홈페이지:'s.jb51.net' },
{id:4,
이름:'springside',
기관: 'springside',
홈페이지:'tools.jb51.net'}


즉, 데이터가 1차원 배열이 되며, 배열의 각 요소는 이름, 조직, 홈페이지, ID와 같은 속성을 포함합니다. 위의 데이터를 테이블에 표시하려면 Ext.data.JsonStore를 사용하도록 저장소를 변경하기만 하면 됩니다. 코드는 다음과 같습니다.


코드 복사 코드는 다음과 같습니다.
var store=new Ext.data.JsonStore({data:data,fields:["id ","name","organization" ,"homepage"]});
var colM=new Ext.grid.ColumnModel([{header:"프로젝트 이름",dataIndex:"name",sortable:true},
{header:"개발팀",dataIndex:"organization",sortable:true},
{header:"Website",dataIndex:"homepage",renderer:showUrl}])
vargrid = new Ext.grid.GridPanel({
renderTo:"hello",
title:"중국 Java 오픈 소스 제품 및 팀",
height:200,
width:600,
cm:colM,
store:store ,
autoExpandColumn:2
})

위 코드는 이전 코드와 동일한 결과를 제공합니다. 물론, 테이블에는 xml 형식의 데이터도 표시할 수 있습니다. 위의 데이터가 hello.xml 파일에 저장되어 있으면 내용은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
1 EasyJF www.baidu.com ;id>2 jfox www.jb51.net < id>3 s.jb51.net ;4 tools.jb51.net


ExtJS 테이블 그리드를 사용하여 이 xml 데이터를 표시하려면 store 부분의 콘텐츠를 다음 콘텐츠로 조정하기만 하면 됩니다.


코드 복사 코드는 다음과 같습니다.


var store=new Ext.data.Store({
url:"hello.xml",
reader:new Ext.data.XmlReader({
기록:" row"},
["id","name","organization","homepage"])
});


다른 부분은 변경할 필요가 없습니다. 완료 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

function showUrl(value)
{
return "" 값 ""
}
Ext.onReady(function(){
var store=new Ext.data.Store({
url:"hello.xml",
reader:new Ext.data.XmlReader({
record:"row "},
["id","name","organization","homepage"])
})
var colM=new Ext.grid.ColumnModel([ {header:"프로젝트 이름",dataIndex:"name",sortable:true},
{header:"개발팀",dataIndex:"organization",sortable:true},
{header:"website" ,dataIndex:"homepage" ,renderer:showUrl}]);
var Grid = new Ext.grid.GridPanel({
renderTo:"hello",
title:"중국 Java 오픈 소스 제품 및 팀 ",
높이: 200,
너비:600,
cm:colM,
store:store,
autoExpandColumn:2
});
store.load() ;
});


store.laod()는 위 코드를 실행하여 생성된 테이블과 동일합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.