extjs 表格编辑,动态显示列怎么弄?
function createCpGrid(tid) {
var store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : 'jskpAction.ered?reqCode=queryKpzbList'
}),
reader : new Ext.data.JsonReader({
totalProperty : 'TOTALCOUNT',
root : 'ROOT'
}, [ {
name : 'id'
}, {
name : 'zid'
}, {
name : 'mc'
}, {
name : 'max'
}, {
name : 'zbsm'
}, {
id : 'pffsid',
name : 'pffs'
}])
});
store.load({
params : {
start : 0,
limit : 20,
tid:tid
}
});
store.on('load', function() {
});
function renderPffs(){
var pffs_edit = new Ext.form.ComboBox( {
hiddenName : 'pf', // 往后台传值字段名
store : new Ext.data.SimpleStore({
fields : ['text',
'value'],
data : [['主编', '1'],
['参编', '0']]
}),
mode : 'local',
triggerAction : 'all',
valueField : 'value',
displayField : 'text',
fieldLabel : '主编',
emptyText : '请选择...',
forceSelection : true, // 选中内容必须为下拉列表的子项
editable : true, // 选择输入框可编辑
typeAhead : true, // 输入的时候自动匹配待选项目
anchor : '100%'
});
var pffs_edit1=new Ext.form.TextField({
allowBlank : false,
maxLength : 10
});
for(var i=0;i<store.getCount();i++){
var record=store.gerAt(i);
var pffs=record.get('pffs');
if(pffs.equals("1"))
{
return pffs_edit1;
}
else
return pffs_edit;
};
}
// if(pffs.equals("1"))
cm1 = new Ext.grid.ColumnModel( [ new Ext.grid.RowNumberer(), {
id : 'id',
header : '指标编号',
hidden : true,
dataIndex : 'id'
}, {
header : '考核内容',
dataIndex : 'mc',
sortable : true,
width :450
}, {
header : '评分',
dataIndex : 'pf',
width : 100,
//renderer:renderPffs,
editor : renderPffs
} ]); 展开
这里说的应该是excel动态图表下拉显示列,操作方法如下:
1.制作包含了相关数据的Excel表格,以下以一份销售简表为例,说明该技巧的详细思路。
2.选择单元格A20(也可以是其他空白单元格),单击菜单栏“数据”→有效性”,打开“数据有效性”对话框,在“设置”选项卡下,“允许”的下拉菜单中,选择“序列”,在“来源”中,选择或输入来源位置(本例为$A$3:$A$16),确定之后,即可以为A20单元格建立下拉列表。
3.选择A20单元格的相邻单元格B20,输入公式=VLOOKUP($A$20,$A$3:$H$16,COLUMN(),),回车后,选择B20单元格拖动右下角的填充柄将公式填充至H20。此时通过选择A20单元格的下拉菜单,选择不同的产品,会显示该产品的具体详细信息。
PS:VLOOKUP函数是一个查找函数,其基本解释是:在参数2(本例为$A$3:$H$16)首列中,垂直查找(按行查找)参数1(本例为$A$20),并返回参数3指定的第n列中相同行的数据,参数4为查找方式,参数4为0或省略或为FALSE时,表示精确查找,为1或者TRUE时表示模糊查找。
COLUMN为列函数,COLUMN()表示返回当前单元格的列号。
4.选定A20:H20单元格区域作为图表的数据源,单击“插入”→图表”,打开“图表向导”对话框,按提示进行设置,制作好图表,需要不同产品的相关数据时,只需在A20单元格的下拉菜单中选择即可。该图表实现了随不同的对象而变化,可读性和可视效果都大大提高。
你这样是不行的....
这应该设置完了...这一列..总是最后一行的那个editor...
这个应该在cellediting的beforeedit事件中进行处理...
plugins:[
{ptype:"cellediting" , listeners:{
beforeedit: function(cellediting , context){
var record = context.record ,
column = context.column;
//然后再这里进行判断 , 然column设置editor
var pffs=record.get('pffs');
if (pffs == 1){
column.setEditor(pffs_edit1);
}else{
column.setEditor(pffs_edit);
}
}
}}
]
//可能会遇到问题...比如我在4.X设置的时候 , 如果想这样在外面定义pffs_edit1..会报错...可以直接设置editor
column.setEditor({xtype:"textfield" , ...});
//自己试试吧, 反正做法肯定是没错的