jQuery MiniUI

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

onshowrowdetail 当前行明细增删改操作后页面刷新默认展开之前 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-3-16 13:39:57 |只看该作者 |倒序浏览
本帖最后由 icezuo5177 于 2016-3-16 14:00 编辑



需求是当前终端下点击“+”显示终端下传感器,对传感器做增删改等操作,保存后,页面 刷新,默认展开之前修改的那行终端下的传感器信息,请教大神如何做。终端grid需要刷新,因为有一个传感器个数是写在视图里,传感器个数变动后需要重新去表里查个数。谢谢。现有的思路是datagrid刷新,再调用onshowrowdetail(e)方法。e如何再获得到呢?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2016-3-16 14:30:41 |只看该作者
grid.showRowDetail(row);

Rank: 2

板凳
发表于 2016-3-16 17:36:45 |只看该作者
dforce 发表于 2016-3-16 14:30
grid.showRowDetail(row);
  1. function onShowRowDetail(e) {
  2.         if(isterminalGridform){   //事件来源于模块修改
  3.             isterminalGridform = false;
  4.             return;
  5.         }
  6.         edit_form.style.display = "none";
  7.         var grid = e.sender;
  8.         var row = e.record;
  9.         var td = grid.getRowDetailCellEl(row);
  10.         td.appendChild(sensor_form);
  11.         sensor_form.style.display = "block";
  12.         terminalNo = row.terminalNo;
  13.         sensor_grid.load({"terminalNo":row.terminalNo});
  14. } 这个是点击终端那行的“+”触发的事件。如果我在做终端下传感器的操作时,点击保存后,终端grid刷新并展开之前操作的传感器gridgrid.showrowdetail(row)这个row是传的终端grid的row吗
复制代码
  1. <div class="mini-fit" style="min-width: 950px;">
  2.                 <div id="terminalGrid" class="mini-datagrid" style="width: 100%; height: 100%;" sizeList="[20,30,50,100]" pageSize="20" idField="id"  fitColumns="true"
  3.                         url="${basePath}/admin/terminalManagement/getTerminalList.do" onshowrowdetail="onShowRowDetail" multiSelect="true">
  4.                         <div property="columns">
  5. …………这个是终端的grid
复制代码


Rank: 8Rank: 8

地板
发表于 2016-3-17 09:56:26 |只看该作者
icezuo5177 发表于 2016-3-16 17:36


row就是你前面展开的那行,刷新之后用
grid.showrowdetail(row)再展开就是了

Rank: 2

5#
发表于 2016-3-17 15:28:08 |只看该作者
本帖最后由 icezuo5177 于 2016-3-17 15:29 编辑
dforce 发表于 2016-3-17 09:56
row就是你前面展开的那行,刷新之后用
grid.showrowdetail(row)再展开就是了

点击修改按钮,修改的是终端信息,terminalGrid
显示终端信息页面
点击“+”号,显示的是终端下传感器信息维护页面,sensorGrid
显示的是终端下传感器信息维护页面
想请教的是我在传感器信息维护页面,做相关增删改操作后,terminalGrid要刷新,因为要实时显示传感器个数,之前只是做了刷新,用户体验不好。想刷新后再展开之前维护的终端下传感器信息页面。

  1. /**
  2. * 保存传感器
  3. * @param uid
  4. */
  5. function updateSensorRow(uid) {
  6.         var rowT = terminalGrid.getSelected();
  7.         var rowS = sensor_grid.getRowByUID(uid); …………具体业务代码…………terminalGrid.reload();var td = terminalGrid.getRowDetailCellEl(rowT);
  8. td.appendChild(sensor_form);
  9. sensor_form.style.display = "block";
  10. terminalNo = rowT.terminalNo;
  11. sensor_grid.load({"terminalNo":rowT.terminalNo});
复制代码
点击的终端行和修改的终端下传感器行信息都能获取到,现在问题是reload()方法后,下面的代码也执行,但是页面没反应,没有展开sensor_form。请问怎么破,谢谢。是我的代码问题吗?


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

6#
发表于 2016-3-17 16:05:49 |只看该作者
icezuo5177 发表于 2016-3-17 15:28
点击修改按钮,修改的是终端信息,terminalGrid
显示终端信息页面
点击“+”号,显示的是终端下传感器信息 ...

表格是一步加载的,你reload没加载完下面的已经运行了,所以是无效的
你这个情况你在load的回调里调用展开明细行的方法就可以,没你想的那么复杂

grid.load(null,function(e){
    grid.showrowdetail(row)
})

Rank: 2

7#
发表于 2016-3-23 17:28:20 |只看该作者
dforce 发表于 2016-3-17 16:05
表格是一步加载的,你reload没加载完下面的已经运行了,所以是无效的
你这个情况你在load的回调里调用展 ...

纠结了好多天还是没有解决这个问题,不知到底哪里写的不对。想着换一种方式就是我只刷新sensorGrid,然后通过sensorGrid.getData().length获得grid里数据条数,然后给传感器个数那列赋值,请问现在能获得条数,如何给列赋值?

Rank: 2

8#
发表于 2016-3-23 17:52:13 |只看该作者
icezuo5177 发表于 2016-3-23 17:28
纠结了好多天还是没有解决这个问题,不知到底哪里写的不对。想着换一种方式就是我只刷新sensorGrid,然后 ...

刚查到了,grid.updateRow(row,{filed:value})更新某行某列的值,试了可行。但是遇到个问题就是sensorGrid刷新后,获取的条数不准确,如果里面有空行数据,也算在内了。可不可以等刷新完毕数据显示最新后再获得条数?

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Archiver|普加软件

GMT+8, 2024-10-7 06:49 , Processed in 1.050497 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部