jQuery MiniUI

标题: datagrid 动态增加 [打印本页]

作者: 西瓜太浪    时间: 2017-1-12 14:36:08     标题: datagrid 动态增加

问下版主,我动态增加datagrid列时,在编辑完某一列后,自动根据该列的值 将后续相关列的值进行自动赋值,
现在已经赋值成功了,但是不点击自动赋值的列看不到值,点击到列的时候才能显示自动赋的值 ,这是怎么回事啊。
grid.on("cellendedit",function(e)){
   if(e.filed=="base"){
        e.record.base2= e.record.base;
    }
}

作者: dforce    时间: 2017-1-12 14:58:24

http://www.miniui.com/demo/#src=datagrid/drawcell2.html
可以参考我们示例,在ondrawcell事件里自动计算
作者: 西瓜太浪    时间: 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设置但是取不到 是什么原因呢
作者: dforce    时间: 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)可以这样获取
作者: 西瓜太浪    时间: 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
作者: dforce    时间: 2017-1-12 17:13:59

西瓜太浪 发表于 2017-1-12 16:44
var editor=gridi.getCellEditor(columnName) 这个columnName 是
职位
                         =

<div field="..." name="..."  
给列设置一个name
作者: 西瓜太浪    时间: 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 这种 而是 日期形式的

作者: felt    时间: 2017-1-13 09:48:41

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

时间列的值本来就是date,只是显示的是格式化话的字符串格式,请比较date
作者: 西瓜太浪    时间: 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);
打印出来的串 没有包含自动计算的列啊,能不能把自动计算的列也获取到呢,因为前台好几列计算完之后想直接
传到后台保存到数据库,不想再计算一遍了

作者: felt    时间: 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;
            }

        }
作者: 西瓜太浪    时间: 2017-1-13 16:18:16

felt 发表于 2017-1-13 16:01
function onDrawCell(e) {
            var record = e.record;

恩  谢谢版主




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2