第十八讲:ExtJS组件之GridPanel(下)

1.表格视图。

<?xml version="1.0" encoding="UTF-8"?>

<dataset>

<row>

<id>1</id>

<name>张三</name>

<age>43</age>

<homePage>www.ibeifeng.com</homePage>

<jianli>

本人来自**大学,。。。。。。。

</jianli>

</row>

<row>

<id>2</id>

<name>李四</name>

<age>24</age>

<homePage>www.ibeifeng.com</homePage>

<jianli>

本人来自**大学,。。。。。。。

</jianli>

</row>

<row>

<id>3</id>

<name>王五</name>

<age>45</age>

<homePage>www.ibeifeng.com</homePage>

<jianli>

本人来自**大学,。。。。。。。

</jianli>

</row>

<row>

<id>4</id>

<name>赵六</name>

<age>12</age>

<homePage>www.ibeifeng.com</homePage>

<jianli>

本人来自**大学,。。。。。。。

</jianli>

</row>

</dataset>

 

function showUrl(value){

return "<a href=http://"+value+" target='_blank'>"+value+"</a>";

}

 

function formatAge(value,metadata){

if(value > 30) {

metadata.attr = 'style="color:red"';

}

return value;

}

 

function formateID(value,metadata){

if(value % 2 == 0) {

metadata.attr = 'style="background-color:red"';

}

return value;

}

 

 

Ext.onReady(function(){

Ext.BLANK_IMAGE_URL = "../Ext/resources/images/default/s.gif";

 

//记录类型

var Person = new Ext.data.Record.create([

{name:"id",mapping:"id"},

{name:"name",mapping:"name"},

{name:"age",mapping:"age"},

{name:"homePage",mapping:"homePage"},

{name:"jianli",mapping:"jianli"}

]);

 

//存储器

var store = new Ext.data.Store({

url:"data.xml",

reader:new Ext.data.XmlReader(

{record: "row",id:"id"},

Person)

});

 

store.load();

var sm = new Ext.grid.CheckboxSelectionModel();

 

//表格面板

var gridPanel = new Ext.grid.GridPanel({

id:"gridPanel",

renderTo:"hello",

title:"人员信息",

width:700,

height:300,

store:store,

columns:[

sm,

{header:"id",dataIndex:"id",sortable:true,renderer:formateID},

{header:"姓名",dataIndex:"name",sortable:true},

{header:"年龄",dataIndex:"age",sortable:true,renderer:formatAge},

{header:"个人主页",dataIndex:"homePage",sortable:true,renderer:showUrl}

],

autoExpandColumn:4,

sm:sm,

bbar:[

{text:"获得所选行",handler:function(){

var msg = "";

var row = gridPanel.getSelectionModel().each(function(rec){

msg = msg + rec.get("id") + "," + rec.get("name") + "," +

rec.get("age") + "," + rec.get("homePage") + "\n";

  });

  alert(msg);

}}

],

viewConfig:{

enableRowBody : true,//使用行体

getRowClass : function(record,index,rowParams,store){

rowParams.body = "<div style='padding:10px,10px,10px,10px'>" + record.get("jianli") + "</div>";

rowParams.cols=5;

rowParams.bodyStyle="background-color:#FFFFCC"

}

}

})

});

 

2.可编辑的表格。

function showUrl(value){

return "<a href=http://"+value+" target='_blank'>"+value+"</a>";

}

 

function formatAge(value,metadata){

if(value > 30) {

metadata.attr = 'style="color:red"';

}

return value;

}

 

function formateID(value,metadata){

if(value % 2 == 0) {

metadata.attr = 'style="background-color:red"';

}

return value;

}

 

 

Ext.onReady(function(){

Ext.BLANK_IMAGE_URL = "../Ext/resources/images/default/s.gif";

 

//记录类型

var Person = new Ext.data.Record.create([

{name:"id",mapping:"id"},

{name:"name",mapping:"name"},

{name:"age",mapping:"age"},

{name:"homePage",mapping:"homePage"},

{name:"jianli",mapping:"jianli"}

]);

 

//存储器

var store = new Ext.data.Store({

url:"data.xml",

reader:new Ext.data.XmlReader(

{record: "row",id:"id"},

Person)

});

 

store.load();

var sm = new Ext.grid.CheckboxSelectionModel();

 

//表格面板

var gridPanel = new Ext.grid.EditorGridPanel({

id:"gridPanel",

renderTo:"hello",

title:"人员信息",

width:700,

height:300,

store:store,

columns:[

sm,

{header:"id",dataIndex:"id",sortable:true,renderer:formateID},

{header:"姓名",dataIndex:"name",sortable:true,

    editor:new Ext.form.TextField({

allowBlank:false     

    })

 },

{header:"年龄",dataIndex:"age",sortable:true,renderer:formatAge},

{header:"个人主页",dataIndex:"homePage",sortable:true,renderer:showUrl}

],

autoExpandColumn:4,

sm:sm,

bbar:[

{text:"获得所选行",handler:function(){

var msg = "";

var row = gridPanel.getSelectionModel().each(function(rec){

msg = msg + rec.get("id") + "," + rec.get("name") + "," +

rec.get("age") + "," + rec.get("homePage") + "\n";

  });

  alert(msg);

}}

],

viewConfig:{

enableRowBody : true,//使用行体

getRowClass : function(record,index,rowParams,store){

rowParams.body = "<div style='padding:10px,10px,10px,10px'>" + record.get("jianli") + "</div>";

rowParams.cols=5;

rowParams.bodyStyle="background-color:#FFFFCC"

}

}

})

});

 

3.属性表格面板。

Ext.onReady(function(){

Ext.BLANK_IMAGE_URL = "../Ext/resources/images/default/s.gif";

Ext.QuickTips.init();

Ext.form.Field.prototype.msgTarget="qtip";

 

var propertyGrid = new Ext.grid.PropertyGrid({

id:"propertyPanel",

title:"propertyPanel",

width:300,

height:300,

renderTo:"hello",

source: {

"员工名称" : "张三",

"出生日期" : new Date(2008,5,23),

"性别" : '男',

"是否已婚" : false,

"年龄" : 29

}

})

});

设置时间格式。

propertyGrid.getColumnModel().dateFormat = "Y年m月d日";

自定义编辑框。

Ext.onReady(function(){

Ext.BLANK_IMAGE_URL = "../Ext/resources/images/default/s.gif";

Ext.QuickTips.init();

Ext.form.Field.prototype.msgTarget="qtip";

 

var propertyGrid = new Ext.grid.PropertyGrid({

id:"propertyPanel",

title:"propertyPanel",

width:300,

height:300,

renderTo:"hello",

source: {

"员工名称" : "张三",

"出生日期" : new Date(2008,4,23),

"性别" : '男',

"是否已婚" : false,

"年龄" : 29

},

customEditors:{

"性别":new Ext.grid.GridEditor(new Ext.form.ComboBox({

mode: 'local',

displayField:"sex",

triggerAction:"all",

store:new Ext.data.SimpleStore({

fields:["sex"],

data:[["男"],["女"]]

})

})),

"年龄":new Ext.grid.GridEditor(new Ext.form.NumberField({

allowBlank:false,

allowDecimals:false,

allowNegative:false,

maxValue:100,

maxText:"年龄不能大于100",

minValue:1,

minText:"年龄不能小于1",

selectOnFocus:true,

blankText:"必须填写年龄信息"

}))

}

});

 

propertyGrid.getColumnModel().dateFormat = "Y年m月d日";

});

4.创建分组。

function showUrl(value){

return "<a href=http://"+value+" target='_blank'>"+value+"</a>";

}

 

function formatAge(value,metadata){

if(value > 30) {

metadata.attr = 'style="color:red"';

}

return value;

}

 

function formateID(value,metadata){

if(value % 2 == 0) {

metadata.attr = 'style="background-color:red"';

}

return value;

}

 

 

Ext.onReady(function(){

Ext.BLANK_IMAGE_URL = "../Ext/resources/images/default/s.gif";

 

//记录类型

var Person = new Ext.data.Record.create([

{name:"id",mapping:"id"},

{name:"name",mapping:"name"},

{name:"age",mapping:"age"},

{name:"homePage",mapping:"homePage"},

{name:"jianli",mapping:"jianli"}

]);

 

//存储器

var store = new Ext.data.GroupingStore({

url:"data.xml",

reader:new Ext.data.XmlReader(

{record: "row",id:"id"},

Person),

groupField:"homePage"

});

 

store.load();

var sm = new Ext.grid.CheckboxSelectionModel();

 

//表格面板

var gridPanel = new Ext.grid.GridPanel({

id:"gridPanel",

renderTo:"hello",

title:"人员信息",

width:700,

height:300,

store:store,

columns:[

sm,

{header:"id",dataIndex:"id",sortable:true,renderer:formateID},

{header:"姓名",dataIndex:"name",sortable:true},

{header:"年龄",dataIndex:"age",sortable:true,renderer:formatAge},

{header:"个人主页",dataIndex:"homePage",sortable:true,renderer:showUrl}

],

autoExpandColumn:4,

sm:sm,

bbar:[

{text:"获得所选行",handler:function(){

var msg = "";

var row = gridPanel.getSelectionModel().each(function(rec){

msg = msg + rec.get("id") + "," + rec.get("name") + "," +

rec.get("age") + "," + rec.get("homePage") + "\n";

  });

  alert(msg);

}}

],

view:new Ext.grid.GroupingView({

groupTextTpl : '{text}(共{[values.rs.length]}条)',//定义分组行模板

groupByText : '使用当前字段进行分组',//表头菜单提示信息

showGroupsText : '表格分组',//表头菜单提示信息

showGroupName : true,//显示分组字段名称

startCollapsed : false,//展开分组

hideGroupedColumn : true//隐藏分组列

 

})

})

});

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章