jQuery MiniUI

标题: onshowrowdetail 当前行明细增删改操作后页面刷新默认展开之前 [打印本页]

作者: icezuo5177    时间: 2016-3-16 13:39:57     标题: onshowrowdetail 当前行明细增删改操作后页面刷新默认展开之前

本帖最后由 icezuo5177 于 2016-3-16 14:00 编辑

[attach]7194[/attach][attach]7195[/attach]

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

作者: dforce    时间: 2016-3-16 14:30:41

grid.showRowDetail(row);
作者: icezuo5177    时间: 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
复制代码



作者: dforce    时间: 2016-3-17 09:56:26

icezuo5177 发表于 2016-3-16 17:36


row就是你前面展开的那行,刷新之后用
grid.showrowdetail(row)再展开就是了
作者: icezuo5177    时间: 2016-3-17 15:28:08

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

[attach]7207[/attach]点击修改按钮,修改的是终端信息,terminalGrid
[attach]7208[/attach]显示终端信息页面
[attach]7209[/attach]点击“+”号,显示的是终端下传感器信息维护页面,sensorGrid
[attach]7210[/attach]显示的是终端下传感器信息维护页面
想请教的是我在传感器信息维护页面,做相关增删改操作后,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。请问怎么破,谢谢。是我的代码问题吗?



作者: dforce    时间: 2016-3-17 16:05:49

icezuo5177 发表于 2016-3-17 15:28
点击修改按钮,修改的是终端信息,terminalGrid
显示终端信息页面
点击“+”号,显示的是终端下传感器信息 ...

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

grid.load(null,function(e){
    grid.showrowdetail(row)
})
作者: icezuo5177    时间: 2016-3-23 17:28:20

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

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

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

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





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