jQuery MiniUI

 找回密码
 立即注册
查看: 2011|回复: 9
打印 上一主题 下一主题

datagrid 行内编辑 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-3-21 19:29:32 |只看该作者 |倒序浏览
在这个datagrid的行内编辑事件中,在这个输入框的onBlur或者onValueChanged 时间中 如何获取我输入的这个值?现在只能获取以前的值?求助。

Rank: 8Rank: 8

沙发
发表于 2016-3-22 09:19:38 |只看该作者
oncellcommitedit
oncellendedit
事件都能获取编辑之后的数据

Rank: 2

板凳
发表于 2016-3-22 11:22:50 |只看该作者
felt 发表于 2016-3-22 09:19
oncellcommitedit
oncellendedit
事件都能获取编辑之后的数据

在这个方法中我改变了 gsgrid.getSummaryCellEl("ps0146").innerHTML=value; 合计的值之后,顺便改变这个value的颜色, 我在<sapn id="xx">value</span>    我设置xx的color之后,因为还调用了onDrawSummaryCell 这个方法,在循环调用的时候,xx的颜色会改变回去 该怎么做呢,我指向让onDrawSummaryCell  这个方法在datagrid初始化的时候,调用一次,之后不再调用,该怎么做呢

Rank: 8Rank: 8

地板
发表于 2016-3-22 11:29:18 |只看该作者
hujiewei 发表于 2016-3-22 11:22
在这个方法中我改变了 gsgrid.getSummaryCellEl("ps0146").innerHTML=value; 合计的值之后,顺便改变这个 ...

只能在onDrawSummaryCell  里处理
gsgrid.getSummaryCellEl("ps0146").innerHTML这种无效,每次更新汇总行都会重绘

Rank: 2

5#
发表于 2016-3-22 11:31:51 |只看该作者
felt 发表于 2016-3-22 11:29
只能在onDrawSummaryCell  里处理
gsgrid.getSummaryCellEl("ps0146").innerHTML这种无效,每次更新汇总 ...

我能调用一次 onDrawSummaryCell    这个之后,直接把这个方法给禁用了么?
调用onCellendedit  地方比较多,但是每次调用后面这个都会去调用前面的。我想直接只调用一次前面的就给禁用了  不知道行不行

Rank: 2

6#
发表于 2016-3-22 11:33:49 |只看该作者
felt 发表于 2016-3-22 11:29
只能在onDrawSummaryCell  里处理
gsgrid.getSummaryCellEl("ps0146").innerHTML这种无效,每次更新汇总 ...

//合计的JS
function onDrawSummaryCell(e) {
            if (e.field == "aab004") {               
                var s = "<span id='summary' style='color:Brown;'>合计:</span>";
                e.cellHtml = s;
            }
            if(e.field=="ps0141"){
                    e.cellHtml = "<span id='hj0141' >"+e.cellHtml+"</span>";
            }

//单元格编辑的JS
function onCellendedit(e){
                var value = e.value;
                var field = e.field;
                var rowIndex = e.rowIndex;
                var data = gsgrid.getData();
                var col = field.substring(field.length-1,field.length);
                    var data = gsgrid.getData();
                if(col==1){
                            var ps0141=0;
                for (var i = 0; i < data.length-1; i++) {
                    if(i!=rowIndex){
                        ps0141+=parseInt(data.ps0141==null?"0":data.ps0141);
                    }
                }
                ps0141 += parseInt(value);
                gsgrid.getSummaryCellEl("ps0141").innerHTML=ps0141;
                gsgrid.getSummaryCellEl("ps0141").style.color="red";
                }

Rank: 8Rank: 8

7#
发表于 2016-3-22 13:21:23 |只看该作者
hujiewei 发表于 2016-3-22 11:33
//合计的JS
function onDrawSummaryCell(e) {
            if (e.field == "aab004") {                 ...

不能禁止
你现在要做的是什么功能,描述一下你的需求,我看看怎么做合适

Rank: 2

8#
发表于 2016-3-22 14:13:11 |只看该作者
felt 发表于 2016-3-22 13:21
不能禁止
你现在要做的是什么功能,描述一下你的需求,我看看怎么做合适 ...

首先,datagrid加载数据之后,进行合计(这里会生成一行数据),然后在进行单元格编辑,如果编辑之后的数据超过一个值,合计里面相应的数据改变颜色。

Rank: 8Rank: 8

9#
发表于 2016-3-22 14:53:29 |只看该作者
hujiewei 发表于 2016-3-22 14:13
首先,datagrid加载数据之后,进行合计(这里会生成一行数据),然后在进行单元格编辑,如果编辑之后的数 ...

ondrawsummarycell里处理
if(field==""){
   if(e.value>...){
       e.cellHtml="";
   }else{
     e.cellHtml="";
   }
}

Rank: 2

10#
发表于 2016-3-22 15:55:48 |只看该作者
felt 发表于 2016-3-22 14:53
ondrawsummarycell里处理
if(field==""){
   if(e.value>...){

我试试看,不行再来求助

Archiver|普加软件

GMT+8, 2024-7-5 02:41 , Processed in 1.046121 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部