/**
* model中设置visible属性使该列可生成,设置editor可以传递编辑器,
* model中设置columnName可传递列名,默认为model的name为列名
* grid中设置autoGenerateColumns: true,可使自动生成列
* author:dys1990@qq.com
*/
Ext.override(Ext.grid.Panel, {
initComponent: function() {
this.autoGenerateColumn();
this.callParent(arguments);
}
});
Ext.define('Ext.ux.AutoGenerateColumn', {
autoGenerateColumn: function() {
var me = this,
noModel = Ext.isDefined(me.model) === false,
noAutoGenerate = Ext.isDefined(me.autoGenerateColumns) === false;
if (noModel && noAutoGenerate) {
return;
}
if (me.autoGenerateColumns === true) {
if(Ext.isString(me.model)) {
me.model = Ext.ModelManager.getModel(me.model);
}
var modelFields = me.model.prototype.fields;
me.columns = new Array();
// Adding columns to grid
for (var i=0; i < modelFields.length; i++) {
var modelField = modelFields.items[i];
var isVisible = (Ext.isDefined(modelField.visible) && (modelField.visible === true));
var columnName;
if (isVisible) {
columnName=modelField.name;
if(Ext.isDefined(modelField.columnName)){
columnName=modelField.columnName;
}
var column = {
text: columnName,
dataIndex: modelField.name
};
if (modelField.type.type === 'floatOrString') {
column.renderer = Ext.util.Format.numberOrString;
}
if(Ext.isDefined(modelField.editor)){
column.editor=modelField.editor;
}
me.columns.push(column);
}
}
}
if (me.columns.length == 0) {
Ext.Error.raise('No fields declared in ' + me.model.$className + ' with property visible. Columns will not be created!');
}
}
});
Ext.grid.Panel.mixin('AutoGenerateColumn', Ext.ux.AutoGenerateColumn);
分享到:
相关推荐
Extjs动态Grid的生成 htm
Extjs4 Grid分页与自动刷新
基于Extjs4官方的例子,做了一个关于MVC和Grid增删改的小例子
EXTJS4 GRID 表格 分页 编辑 添加判断 颜色判断 分组 等示例
Extjs4 grid 导出为Excel 下载后放在网站(不放在网站中导出按钮不能会点击无响应,因为这里调用了swf文件)里可直接运行index.html测试 <link href='...
ExtJS grid过滤操作,可以动态操作本地的store更改筛选的内容
这是利用sencha cmd 生成的GridFilterDemo工程中的app和build文件夹,其余文件过大并且与主题无关,因此未包含。具体方法,请参看我的博客: 《Extjs4.2 Grid Filter Feature 表格过滤特性》
NULL 博文链接:https://dejazhan.iteye.com/blog/871259
extjs4 grid 包括form js代码
extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器extjs界面生成器
extjs动态生成model、store、panel;sql拼接等多种技术难点
extjs4如何自动生成掌握grid的列显示、隐蔽的checkbox_.docx
ExtJs代码自动生成的规则,可用于反向生成。
Ext grid 动态添加字段、列扩展, 如何动态添加或者删除一个grid的列
Extjs4下拉菜单中用Grid显示,有单选,和多选两个控件,完美通用代码控件,绝对让你好用,值得收藏^-^
extjs grid示例代码extjs grid示例代码extjs grid示例代码extjs grid示例代码
extjs4打印grid插件,官网上的一个例子程序,有需要的人可以下载来看看。
ExtJs 4.0 Grid 单元格合并控件封装
使用ExtJs相关的控件类自己实现的一个ExtJs的Grid列表的导出功能,可以导出列表的相关样式等
extjs4 ComboBox 点击下拉框 出现grid效果 这里只实现了点击下拉框显示gird,点击其他地方grid自动消失