Ext grid 编辑某行,不从后台重新加载,只更新部分字段显示

1、问题的引出:

这其实源于一个小小的需求,客户要求  在当前EXT分页且按照baselineType字段排序的基础上,选中某行点击“编辑”,弹出编辑窗口,编辑完成之后要求编辑行仍呈选中状态。

我的思路是:编辑完成之后,后台直接更新DB,但是前台不进行数据的重新加载,仅仅更新当前编辑记录的字段显示值。

那么,我需要做的是

(1)确定当前记录的行数dataIndex,可参考之前日志《Ext grid如何获取选中行的行号》。

(2)获取jsp表单中radio类型的baselineType的值baselineTypeVal,可参考之前日志《js中获取jsp表单中radio类型的值 》。

(3)修改当前记录的baselineType的显示值,代码如下:

grid.store.getAt(dataIndex).set("baselineType", baselineTypeVal);

2、重点关注之grid中部分字段的更新

grid.store.getAt(dataIndex).set("baselineType", baselineTypeVal);   //1、(3)

对于以上代码,关注以下几点:

(1)set()的第一个参数值baselineType,对应grid定义中的dataIndex

        {

            header : '基线类型',

            width : 10,

            align : 'center',

            dataIndex : 'baselineType',

            renderer : function(value, p, record) {

                if(value == 1) {

                       showValue = "非基线";

                 } else if(value == 2) {

                       showValue = "功能基线";

                 } else if ( value == 3) {

                       showValue = "分配基线";

                 } else {
                       showValue = "";

                 }

                return "<lable class="labClass" myTitle='" + value + "'>" + showValue + "</lable>";

            }

       }

(2) set()的第一个参数值baselineTypeVal的取值应该必须是 1、2、3或者”“之一,之后会依据grid中header为”基线类型“的定义来显示。意即:

grid.store.getAt(dataIndex).set("baselineType", 1);      (正确)

grid.store.getAt(dataIndex).set("baselineType", ”1“);   (正确)

grid.store.getAt(dataIndex).set("baselineType", ”非基线“);   (错误) 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值