jQuery MiniUI

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

datagrid 更新一行 问题 急急急 求解决谢谢 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-2-17 11:08:00 |只看该作者 |倒序浏览
mini.get("datagrid").updateRow(row,newRow);  这样更新一行,浏览器调试,
执行后  页面的记录更新成功,我再次进入这个执行修改的方法中 当前行的对象 也是更新后的值,但是 getData 获取的却不是 更新后的值,getSelected() 获取的也不是更新后的值。那我上面更新方法更新的是哪个对象,页面只有一个id为 datagrid的控件不存在控件更新错了的问题,row参数 是生成表格生成时 执行时间中的e.record 对象,  难道更新的是这个一行对象吗? 经过我的调试猜测 e 这个对象肯定是克隆出来的,那么地址与datagrid 是不一样的,mini.get("datagrid").updateRow  这一行看似更新的是datagrid 这个控件 但是好像关键是 row这个参数的地址取决于哪里,更新的是row这个参数的地址 的数据 而不是 datagrid 这个地址的 后来 我用了一个循环 在 datagrid 对象中找到我要更新的哪一行 代替原来的 row这个参数 然后更新 就达到了我想要的效果,row 这个参数地址真的很重要 一定要分清。 版主有好方法解决一下这个问题吗,我目前这个解决方法有点傻。

Rank: 8Rank: 8

沙发
发表于 2016-2-17 11:20:07 |只看该作者
你在什么事件里更新的

Rank: 2

板凳
发表于 2016-2-17 12:06:24 |只看该作者
dforce 发表于 2016-2-17 11:20
你在什么事件里更新的

我把一列 重新绘制了一下 , 里面有个 按钮 出发单击事件 绘制列的时间是 datagrid的oncellclick事件  
//操作列生成
     function againCreate(e){
         var record=e.record;
         if(!isNull(record.POOL_ID)){//主键不为空的时候才生产操作代表是已经保存的数据
                        return "<a href='javascript:edit("+mini.encode(record)+")'>编辑</a>   <a  href='javascript:dataImport()'>数据导入</a>";
         }else{//否则生成删除一行记录,不是删除数据库中数据 这个 时候还没保存到数据库 可以删除
                 return "<a href='javascript:delRow()'>删除</a>";
         }
        return "";
     }

调用edit方法

function edit(row){
                //添加自定义字段标示为当前行为编辑行
             var newRow=mini.clone(row);
                newRow["UPDATE"]=1;
                var grid=mini.get("datagrid").getData();
                for(var i=0;i<grid.length;i++){//这个循环最多50次不会影响效率,这样更新行是因为 row 这个对象与datagrid对象 不是同一个数据对象地址,直接用row不会更新datagrid数据源
                        if(grid.POOL_ID==row.POOL_ID){
                                mini.get("datagrid").updateRow(grid,newRow);
                                return;
                        }
                 }
     }

这是我改过的,本来应该是  mini.get("datagrid").updateRow(row,newRow);

Rank: 8Rank: 8

地板
发表于 2016-2-17 13:10:38 |只看该作者
js1688 发表于 2016-2-17 12:06
我把一列 重新绘制了一下 , 里面有个 按钮 出发单击事件 绘制列的时间是 datagrid的oncellclick事件  
// ...

http://www.miniui.com/demo/#src=datagrid/rowedit.html
参考这个示例,存个行的uid,你直接放个row当然不是一个东西了

Rank: 2

5#
发表于 2016-2-17 14:26:41 |只看该作者
dforce 发表于 2016-2-17 13:10
http://www.miniui.com/demo/#src=datagrid/rowedit.html
参考这个示例,存个行的uid,你直接放个row当然 ...

可以了

Archiver|普加软件

GMT+8, 2024-11-17 12:43 , Processed in 1.057937 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部