加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

grid.常规使用

发布时间:2020-12-15 01:02:41 所属栏目:百科 来源:网络整理
导读://配置表格列 {header: "姓名",width: 50,dataIndex: 'name'},{header: "组长",dataIndex: 'leader',xtype: 'booleancolumn',//Ext.grid.column.Boolean布尔列 trueText: '是',falseText: '否' },{header: "生日",width: 100,dataIndex: 'birthday',xtype :
 
//配置表格列   
{header: "姓名",width: 50,dataIndex: 'name'},{header: "组长",dataIndex: 'leader',xtype: 'booleancolumn',//Ext.grid.column.Boolean布尔列   
    trueText: '是',falseText: '否'  
},{header: "生日",width: 100,dataIndex: 'birthday',xtype : 'datecolumn',//Ext.grid.column.Date日期列   
    format : 'Y年m月d日'//日期格式化字符串   
},{header: "薪资",dataIndex: 'salary',xtype: 'numbercolumn',//Ext.grid.column.Number数字列   
    format:'0,000'//数字格式化字符串   
}  


//grid.column.Action动作列
{ xtype: 'actioncolumn',//Ext.grid.column.Action动作列   
                   items: [{
                       icon: 'images/edit.gif',//指定编辑图标资源的URL    
                       handler: function (grid,rowIndex,colIndex) {
                           //获取被操作的数据记录   
                           var rec = grid.getStore().getAt(rowIndex);
                           alert("编辑 " + rec.get('name'));
                       }
                   },{
                       icon: 'images/del.gif',colIndex) {
                           var rec = grid.getStore().getAt(rowIndex);
                           alert("删除 " + rec.get('name'));
                       }
                   },{
                       icon: 'images/save.gif',colIndex) {
                           var rec = grid.getStore().getAt(rowIndex);
                           alert("保存 " + rec.get('name'));
                       }
                   }]
               }

?

?

//定义渲染函数,格式化性别显示   
function formatSex(value){         
    return value=='man'?'男':'<font color=red>女</font>';   
}   
//定义渲染函数,格式化年龄显示   
function formatAge(value,metadata){            
    if(value < 30){  //年龄小于30的设置背景颜色为#CCFFFF   
        metadata.style = 'background-color:#CCFFFF;';   
    }   
    return value;   
}  
columns: [//配置表格列   
                {header: "id",width: 30,dataIndex: 'id'},{header: "姓名",{header: "性别",dataIndex: 'sex',renderer:formatSex},//格式化生日显示   
renderer:Ext.util.Format.dateRenderer('Y年m月d日')             },{header: "年龄",dataIndex: 'age',renderer:formatAge}   
            ]  


?

{   
    header: "描述",xtype: 'templatecolumn',//Ext.grid.column.Template数字列   
    tpl : '{name}<tpl if="leader == false">不</tpl>是组长'  
}  


?

Ext.create('Ext.grid.RowNumberer',{text : '行号',width : 35}) 


Ext.selection.CellModel(单元格选择模式)示例

//创建表格数据   
var datas = [   
    [100,'张三',24],[200,'李四',30],[300,'王五',29]   
];   
//创建Grid表格组件   
var grid = Ext.create('Ext.grid.Panel',{   
    title : '单元格选择模式示例',renderTo: Ext.getBody(),width:200,height:170,frame:true,selType: 'cellmodel',//设置为单元格选择模式Ext.selection.CellModel   
    tbar : [{   
        text : '取得所选单元格',handler : function(){   
            var cell = grid.getSelectionModel().getCurrentPosition();   
            alert(Ext.JSON.encode(cell));   
        }   
    }],store: {//配置数据源   
        fields: ['id','name','age'],//定义字段   
        proxy: {   
            type: 'memory',//Ext.data.proxy.Memory内存代理   
            data : datas,//读取内嵌数据   
            reader : 'array'//Ext.data.reader.Array解析器   
        },autoLoad: true//自动加载   
    },columns: [//配置表格列   
        {header: "id",dataIndex: 'id',sortable: true},width: 80,dataIndex: 'name',sortable: true}   
    ]   
});  


Ext.selection.RowModel(行选择模式)

simpleSelect : true,//启用简单选择功能    
multiSelect : true,//支持多选   
selType: 'rowmodel',//设置为单元格选择模式Ext.selection.RowModel   
tbar : [{   
    text : '取得所选行',handler : function(){   
        var msg = '';   
        var rows = grid.getSelectionModel().getSelection();   
        for(var i = 0; i < rows.length; i++){   
            msg = msg + rows[i].get('name') + 'n';   
        }   
        alert(msg);   
    }   
}]  


Ext.selection.CheckboxModel(复选框选择模式)

//注册复选框选择模式别名为selection.checkboxmodel   
Ext.ClassManager.setAlias('Ext.selection.CheckboxModel','selection.checkboxmodel');  

multiSelect : true,//支持多选   
            selModel: {   
                selType : 'checkboxmodel'//复选框选择模式Ext.selection.CheckboxModel   
            },tbar : [{   
                text : '取得所选行',handler : function(){   
                    var msg = '';   
                    var rows = grid.getSelectionModel().getSelection();   
                    for(var i = 0; i < rows.length; i++){   
                        msg = msg + rows[i].get('name') + 'n';   
                    }   
                    alert(msg);   
                }   
            }]  


grid中的features使用 Ext.grid.feature.RowBody

features: [Ext.create('Ext.grid.feature.RowBody',{   
    getAdditionalData: function(data,idx,record,orig) {   
        var headerCt = this.view.headerCt,colspan  = headerCt.getColumnCount();//获取表格的列数   
       
        return {   
            rowBody: record.get('introduce'),//指定行体内容   
            rowBodyCls: 'rowbodyColor',//指定行体样式   
            rowBodyColspan: colspan//指定行体跨列的列数   
            };   
        }   
    })]  


Ext.grid.feature.Summary

features: [{   
    ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性   
}],columns: [//配置表格列   
    {header: "姓名",flex: 1,summaryType: 'count',//求数量   
        summaryRenderer: function(value){   
            return '员工总数:'+value   
        }   
    },summaryType: 'average',//求平均值   
        summaryRenderer: function(value){   
            return '平均薪资:'+value   
        }   
    }   
]  


Ext.grid.feature.Grouping

features: [Ext.create('Ext.grid.feature.Grouping',{   
    groupByText : '用本字段分组',showGroupsText : '显示分组',groupHeaderTpl: '性别: {name} ({rows.length})',//分组标题模版   
    startCollapsed: true //设置初始分组是否收起    
})],dataIndex: 'sex'},dataIndex: 'age'}   
]  


Ext.grid.feature.GroupingSummary

features: [Ext.create('Ext.grid.feature.GroupingSummary',width: 110,//求数量   
        summaryRenderer: function(value){   
            return '平均年龄:'+value   
        }   
    }   
]  


Ext.grid.plugin.CellEditing

plugins: [   
    Ext.create('Ext.grid.plugin.CellEditing',{   
        clicksToEdit: 1//设置鼠标单击1次进入编辑状态   
    })   
],//设置为单元格选择模式   
columns: [//配置表格列   
  Ext.create('Ext.grid.RowNumberer',width : 35}),editor: {//文本字段   
            xtype:'textfield',allowBlank:false  
        }   
    },//Ext.grid.column.Date日期列   
        format : 'Y年m月d日',//日期格式化字符串   
        editor: {//日期字段   
            xtype:'datefield',//Ext.grid.column.Number数字列   
        format:'0,000',//数字格式化字符串   
        editor: {//数字字段   
            xtype:'numberfield',allowBlank:false  
        }   
    }   
]  


Ext.grid.plugin.RowEditing

plugins: [   
    //行编辑模式   
    Ext.create('Ext.grid.plugin.RowEditing',{   
        clicksToEdit: 1   
    })   
],selType: 'rowmodel',//设置为单元格选择模式   
columns: [//配置表格列   
    Ext.create('Ext.grid.RowNumberer',allowBlank:false  
        }   
    }   
]  


Ext.grid.plugin.DragDrop

viewConfig: {   
    plugins: [   
        //行编辑模式   
        Ext.create('Ext.grid.plugin.DragDrop',{   
            dragGroup: 'grid1',//拖拽组名称   
            dropGroup: 'grid2'//拖放组名称   
        })   
    ]   
}  


Ext.grid.property.Grid

//创建属性表格   
var grid = new Ext.grid.property.Grid({   
    title: 'Ext.grid.property.Grid示例',width: 300,height: 200,//自定义属性编辑器   
    customEditors : {   
        "性别" : new Ext.form.ComboBox({   
            editable : false,displayField:'sex',mode: 'local',triggerAction: 'all',store:new Ext.data.SimpleStore({   
                fields: ['sex'],data : [['男'],['女']]   
            })   
        }),"出生日期": new Ext.form.DateField({   
            format : 'Y年m月d日',selectOnFocus:true,allowBlank : false  
        })   
    },//自定义渲染函数   
    customRenderers: {   
        //格式化布尔值显示   
        "是否已婚": function(v){   
            return v?'是':'否';   
        },//格式化日期显示   
        "出生日期": Ext.util.Format.dateRenderer('Y年m月d日')   
    },source: {   
        "员工名称" : "张三","出生日期" : Ext.Date.parse('10/15/2006','m/d/Y'),"性别" : '男',"是否已婚" : false,"年龄" : 29   
    }   
});  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读