jQuery MiniUI

标题: datagrid 更新一行 问题 急急急 求解决谢谢 [打印本页]

作者: js1688    时间: 2016-2-17 11:08:00     标题: datagrid 更新一行 问题 急急急 求解决谢谢

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 这个参数地址真的很重要 一定要分清。 版主有好方法解决一下这个问题吗,我目前这个解决方法有点傻。

作者: dforce    时间: 2016-2-17 11:20:07

你在什么事件里更新的


作者: js1688    时间: 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);
作者: dforce    时间: 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当然不是一个东西了
作者: js1688    时间: 2016-2-17 14:26:41

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

可以了




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