extjs 表格编辑,动态显示列怎么弄?

如图,我想在评分这一列既可以显示文本框,也可以显示下拉框进行评分,怎么弄?它要根据数据集里面另外一列的数据进行判断,求大神指点。代码如下:functioncreateCp... 如图,我想在评分这一列既可以显示文本框,也可以显示下拉框进行评分,怎么弄?它要根据数据集里面另外一列的数据进行判断,求大神指点。代码如下:

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
} ]);
展开
 我来答
一点设计演示
高粉答主

推荐于2016-05-16 · 职场/教育各类模板,衷于原创
一点设计演示
采纳数:874 获赞数:83615

向TA提问 私信TA
展开全部

这里说的应该是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单元格的下拉菜单中选择即可。该图表实现了随不同的对象而变化,可读性和可视效果都大大提高。

让你笑了
推荐于2016-10-15 · TA获得超过572个赞
知道小有建树答主
回答量:227
采纳率:50%
帮助的人:289万
展开全部

你这样是不行的....

这应该设置完了...这一列..总是最后一行的那个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" , ...});

//自己试试吧, 反正做法肯定是没错的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式