jQuery MiniUI

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

datagrid 动态增加 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2017-1-12 14:36:08 |只看该作者 |倒序浏览
问下版主,我动态增加datagrid列时,在编辑完某一列后,自动根据该列的值 将后续相关列的值进行自动赋值,
现在已经赋值成功了,但是不点击自动赋值的列看不到值,点击到列的时候才能显示自动赋的值 ,这是怎么回事啊。
grid.on("cellendedit",function(e)){
   if(e.filed=="base"){
        e.record.base2= e.record.base;
    }
}

Rank: 8Rank: 8

沙发
发表于 2017-1-12 14:58:24 |只看该作者
http://www.miniui.com/demo/#src=datagrid/drawcell2.html
可以参考我们示例,在ondrawcell事件里自动计算

Rank: 2

板凳
发表于 2017-1-12 15:57:59 |只看该作者
dforce 发表于 2017-1-12 14:58
http://www.miniui.com/demo/#src=datagrid/drawcell2.html
可以参考我们示例,在ondrawcell事件里自动计算 ...

抱歉刚才说错了 我看你以前给他们说的这种方法 http://www.miniui.com/bbs/forum.php?mod=viewthread&tid=6835   但是我按照你说的这个 取不到var position_combo = mini.get("position_combo");  这个id设置但是取不到 是什么原因呢

Rank: 8Rank: 8

地板
发表于 2017-1-12 16:39:32 |只看该作者
西瓜太浪 发表于 2017-1-12 15:57
抱歉刚才说错了 我看你以前给他们说的这种方法 http://www.miniui.com/bbs/forum.php?mod=viewthread&tid ...

编辑器开始编辑的时候才创建,不能根据id获取
var editor=gridi.getCellEditor(columnName)可以这样获取

Rank: 2

5#
发表于 2017-1-12 16:44:46 |只看该作者
dforce 发表于 2017-1-12 16:39
编辑器开始编辑的时候才创建,不能根据id获取
var editor=gridi.getCellEditor(columnName)可以这样获取 ...

var editor=gridi.getCellEditor(columnName) 这个columnName 是
<div type="comboboxcolumn" field="position_name" width="100" headerAlign="center" >职位
                <input property="editor" id="position_combo" textField="name" valueField="id" class="mini-  combobox" style="width:100%;"/>         =
  </div>
这个div 的field 还是input 标签的id   position_combo

Rank: 8Rank: 8

6#
发表于 2017-1-12 17:13:59 |只看该作者
西瓜太浪 发表于 2017-1-12 16:44
var editor=gridi.getCellEditor(columnName) 这个columnName 是
职位
                         =

<div field="..." name="..."  
给列设置一个name

Rank: 2

7#
发表于 2017-1-12 17:31:25 |只看该作者
本帖最后由 西瓜太浪 于 2017-1-12 17:53 编辑
dforce 发表于 2017-1-12 17:13

哦 好的 就是上次哪个帖子是有些问题的是把 ,
还有个问题问下 我div列里面 是个日期控件 格式设置成yyyyMM了但是在单元格编辑结束事件里面 获取得到的日期类型的 怎么能获取到显示到text里面那种 201701 格式的数字呢,我是想获取到当前编辑的这个行的日期 在其他行是否出现过 如果已经出现过 就提示该年月已经存在
if(e.field =="chargYm"){
    var rows = grid.findRows(function(row){
                      if(row.chargeYm() == "编辑框输入的日期 如 201701')   ----这里值不知道怎么获取我要得  现在是日期形式的
                      return true;
});
var len  = rows.length;
如果len 大于2 就提示 输入的日期已经存在
}

请问这种怎么弄 主要是获取到编辑框的日期不是 201701 这种 而是 日期形式的

Rank: 8Rank: 8

8#
发表于 2017-1-13 09:48:41 |只看该作者
西瓜太浪 发表于 2017-1-12 17:31
哦 好的 就是上次哪个帖子是有些问题的是把 ,
还有个问题问下 我div列里面 是个日期控件 格式设置成yyyyM ...

时间列的值本来就是date,只是显示的是格式化话的字符串格式,请比较date

Rank: 2

9#
发表于 2017-1-13 14:38:27 |只看该作者
本帖最后由 felt 于 2017-1-13 16:00 编辑
felt 发表于 2017-1-13 09:48
时间列的值本来就是date,只是显示的是格式化话的字符串格式,请比较date

http://www.miniui.com/demo/#src=datagrid/drawcell2.html 参考这个做出来的自动计算的列  
通过 var data = grid.getChanges();
var json = .encode({obj:data});
alert(json);
打印出来的串 没有包含自动计算的列啊,能不能把自动计算的列也获取到呢,因为前台好几列计算完之后想直接
传到后台保存到数据库,不想再计算一遍了

Rank: 8Rank: 8

10#
发表于 2017-1-13 16:01:03 |只看该作者
西瓜太浪 发表于 2017-1-13 14:38
http://www.miniui.com/demo/#src=datagrid/drawcell2.html 参考这个做出来的自动计算的列  
通过 var dat ...

function onDrawCell(e) {
            var record = e.record;

            if (e.field == "total") {
                var price = record.price;
                var quantity = record.quantity;
                e.cellHtml = price * quantity;
                e.record.total=price*quanitity;
            }

        }

Archiver|普加软件

GMT+8, 2024-10-7 06:39 , Processed in 1.076522 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部