jQuery MiniUI

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

刷新grid问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-10-20 16:55:54 |只看该作者 |倒序浏览

如图所示:
我点击保存按钮 外围序号1的list_grid
我想再将其下面的grid列表打开
以下代码并未展开 是什么原因?row是当前选中行的row


奇怪的是这样不起作用?看api说load加载完成后操作?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2014-10-20 16:57:54 |只看该作者
grid.load(null,function(){})

Rank: 2

板凳
发表于 2014-10-20 17:09:21 |只看该作者
felt 发表于 2014-10-20 16:57
grid.load(null,function(){})

通过你的方式进来了  但是list_grid.showRowDetail(row);并未展开grid
row这里是行对象都有的 并未触发

Rank: 8Rank: 8

地板
发表于 2014-10-20 17:22:35 |只看该作者
liuwenfeng554 发表于 2014-10-20 17:09
通过你的方式进来了  但是list_grid.showRowDetail(row);并未展开grid
row这里是行对象都有的 并未触发 ...

稍微加点延时看一下能不能展开
如果不能的话,请提供完整重现页面,我们本地看一下

Rank: 2

5#
发表于 2014-10-20 17:35:39 |只看该作者
felt 发表于 2014-10-20 17:22
稍微加点延时看一下能不能展开
如果不能的话,请提供完整重现页面,我们本地看一下 ...

延时不是一种好的解决方案 貌似也不可以,如果考虑数据量大的情况 设置延时不能完全解决啊
JSP代码,代码比较多,可以本地html模拟一下,期待有好的方案解决
相关代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>推荐管理</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="${ctx}/rs/scripts/miniui/themes/icons.css"/>
    <link href="${ctx}/rs/css/demo.css" rel="stylesheet" type="text/css" />
    <link href="${ctx}/rs/css/layout.css" rel="stylesheet" type="text/css" />
        <link href="${ctx}/rs/css/top.css" rel="stylesheet" type="text/css" />
        <link href="${ctx}/rs/css/left.css" rel="stylesheet" type="text/css" />
        <link href="${ctx}/rs/css/right.css" rel="stylesheet" type="text/css" />
        <link href="${ctx}/rs/css/foot.css" rel="stylesheet" type="text/css" />
<%--         <script src="${ctx}/rs/scripts/boot.js" type="text/javascript"></script> --%>
    <script src="${ctx}/rs/scripts/miniui_3.4/boot.js" type="text/javascript"></script>
        <script language="javascript" src="${ctx}/rs/js/sider.js"></script>
</head>
<body>
<div class="main">
        <div class="opo_right_bar" id="right" style="width:100%;">
        <div class="mini-toolbar">
            <input class="mini-hidden" id="cId" name="cId" value="${cId}"/>
            <a class="mini-button" iconCls="icon-remove" onclick="remove()">删除</a>
            <span class="separator"></span>
            <a class="mini-button" iconCls="icon-save" onclick="saveData()" plain="true">保存排序</a>  
        </div>
        <div class="mini-fit" >
              <div id="list_grid" class="mini-datagrid list_table" style="width:100%;height:100%;" allowResize="true"
                url="${ctx}/category/confSpecialPage.htm"  idField="id" allowAlternating="true"  
                allowCellEdit="true" allowCellSelect="true" allowCellValid="true"
                showEmptyText="true" emptyText="对不起,没有记录" pageSize="10"  multiSelect="true" onshowrowdetail="onShowRowDetail">
                <div property="columns">   
                    <div type="checkcolumn" width="5"></div>
                    <div type="expandcolumn" width="5"></div>
                    <div type="indexcolumn" width="10" headerAlign="center" align="center"><B>序号</B></div>
                    <div field="cname" width="30" headerAlign="center"  align="center"><B>分类名称</B></div>      
                    <div field="albumName" width="30" headerAlign="center"  align="center"><B>专辑名称</B></div>
                    <div field="timeQuantum" width="15" headerAlign="center"  align="center" renderer="onTimeQuantumRenderer"><B>是否时间段</B></div>
                <div field="sortNum" width="15" headerAlign="center"  align="center" vtype="required;int"><B>顺序号<font style="color: green;">(编辑)</font></B>
                  <input property="editor" class="mini-textbox" style="width:100%;"/>
                </div>
                <div name="action" width="20" headerAlign="center" align="center" renderer="onActionRenderer" cellStyle="padding:0;"><B>操作</B></div>
                </div>
              </div>
              <div id="detailGrid_Form" style="display:none;">
                <div class="mini-toolbar">
                   <table style="width:100%;">
                        <tr>
                            <td style="width:100%;">
                                <input class="mini-hidden" id="oper" name="oper"/>
                                <a class="mini-button" iconCls="icon-save" onclick="saveTime()" plain="true">保存</a>     
                            </td>
                            <td style="white-space:nowrap;">
                                                                                共 <span id="total">0</span> 条
                            </td>
                        </tr>
                    </table>   
            </div>
            <div id="song_grid" class="mini-datagrid list_table" style="width:100%;height:180px;"
              idField="id" allowAlternating="true" allowResize="true" showEmptyText="true" emptyText="对不起,没有记录"
              allowCellEdit="true" allowCellSelect="true" allowCellValid="true" showPager="false"
              url="${ctx}/category/songList.htm" onload ="onInitialize" oncellcommitedit="onCellCommitEdit">
               <div property="columns">
                <div type="indexcolumn" width="10" headerAlign="center" align="center"><b>序号</b></div>     
                <div field="songName" width="80" allowSort="true"><b>歌曲名称</b></div>
                <div field="startTime" width="30" headerAlign="center"  dateFormat="HH:mm">
                   <b>开始时间<font style="color: green;">(编辑)</font></b>
                   <input property="editor" class="mini-timespinner"  format="HH:mm"/>
                </div>                                   
                <div field="endTime" width="30" headerAlign="center"  dateFormat="HH:mm">
                   <b>结束时间<font style="color: green;">(编辑)</font></b>
                   <input property="editor" class="mini-timespinner"  format="HH:mm"/>
                </div>
                <div field="sortNum" width="30" headerAlign="center"  align="center"><B>顺序号<font style="color: red">(开启-自动)</font></B></div>
             </div>
            </div>   
          </div>
            </div>
        </div>
</div>
</body>
</html>

Rank: 2

6#
发表于 2014-10-20 17:36:44 |只看该作者
liuwenfeng554 发表于 2014-10-20 17:35
延时不是一种好的解决方案 貌似也不可以,如果考虑数据量大的情况 设置延时不能完全解决啊
JSP代码,代码 ...

js 代码如下

<script type="text/javascript">
        mini.parse();
        //初始化
        var list_grid = mini.get("list_grid");
        var song_grid = mini.get("song_grid");
//      var detailGrid_Form = $("#detailGrid_Form");
        var detailGrid_Form = document.getElementById("detailGrid_Form");
        
        var cId=mini.get("cId");
        list_grid.load({categoryId:cId.value});
        
        function onShowRowDetail(e) {
            var grid = e.sender;
            var row = e.record;
            var td = grid.getRowDetailCellEl(row);
            td.appendChild(detailGrid_Form);
            detailGrid_Form.style.display = "block";
//          detailGrid_Form.show();
            
            //设备ID,专辑ID为空情况,默认为0
            song_grid.load({
                    providerCode:row.providerId == null ? 0 : row.providerId,
                    albumId:row.albumId == null ? 0 : row.albumId,
                    csId:row.id
            });
        }
        
        function onInitialize(e) {
                var result = song_grid.getResultObject();
                $("#total").text(result.total);
                $("#oper").val(result.oper);
        }
               
         //删除
                 function remove() {
                    var rows = list_grid.getSelecteds();
                    if (rows.length > 0) {
                        if (confirm("确定删除选中记录?")) {
                            var ids = [];
                            for (var i = 0, l = rows.length; i < l; i++) {
                                var r = rows;
                                ids.push(r.id);
                            }
                            list_grid.loading("操作中,请稍后......");
                            $.ajax({
                                url: "${ctx}/category/deleteSpecial.htm?ids=" + ids,
                                success: function (text) {
                                    list_grid.reload();
                                },
                                error: function () {
                                }
                            });
                        }
                    } else {
                        alert("请选中一条记录");
                    }
            }
            
            function saveData() {
                    list_grid.validate();
                    if (list_grid.isValid() == false) {
                        //alert("请校验输入单元格内容");
                        var error = list_grid.getCellErrors()[0];
                        list_grid.beginEditCell(error.record, error.column);
                        return;
                    }
               
                    var data = list_grid.getChanges();
                    if(data==null||data==''){
                            alert('请更改排序');
                            return false;
                    }
                    var json = mini.encode(data);
                    list_grid.loading("保存中,请稍后......");
                    $.ajax({
                        url: "${ctx}/category/saveSpeSort.htm",
                        data: { data: json },
                        type: "post",
                        success: function (text) {
                            list_grid.reload();
                        },
                        error: function (jqXHR, textStatus, errorThrown) {
                            alert(jqXHR.responseText);
                        }
                    });
                }
            
            function saveTime() {
                    var row= list_grid.getSelected();
                    song_grid.validate();
                    if (song_grid.isValid() == false) {
                        var error = song_grid.getCellErrors()[0];
                        song_grid.beginEditCell(error.record, error.column);
                        return;
                    }
                    var json = mini.encode(song_grid.getData());
                    console.log(json);
                    if(json == "[]" && json.length == 2){
                            alert("无数据保存!");
                            return false;
                    }
                    var op = $("#oper").val();
                    song_grid.loading("保存中,请稍后......");
                    $.ajax({
                        url: "${ctx}/category/saveTime.htm",
                        data: {operp,data:json},
                        type: "post",
                        success: function (text) {
//                             song_grid.reload();
                            list_grid.reload();
//                             console.log(row);
                    list_grid.load(null,function(){
                            console.log(row);
                            list_grid.isShowRowDetail(row);
                            list_grid.showRowDetail(row);
                    });
                        },
                        error: function (jqXHR, textStatus, errorThrown) {
                            alert(jqXHR.responseText);
                        }
                    });
                }
            
            function onTimeQuantumRenderer(e){
                         if (e.value == 1)
                                 return "<label style='color:green'>是</label>";
                 else
                         return "<label style='color:red'>否</label>";
                }
            
            function onActionRenderer(e) {
            var record = e.record;
            var uid = record._uid;
            var row = list_grid.getRowByUID(uid);
            var bnt = "", isTime;
            if(row.timeQuantum == 1){
                    bnt = "取消";
                    isTime = 0;
            }else{
                    bnt = "开启";
                    isTime = 1;
            }
            var s = '<a class="Edit_Button" href="javascript:updateTimeQuantum(\'' + uid + '\','+isTime+','+row.onOff+')">'+bnt+'</a>';
            return s;
        }
            
            function updateTimeQuantum(uid,isTime,onOff){
                    song_grid.validate();
                    if(onOff <= 0){
                            //true 情况配置时间段表中无数据,flase 有数据
                            alert("暂不能开启,请设置时间段保存后操作!");
                            return;
                    }
                    if (song_grid.isValid() == false) {
                            alert('专辑下的歌曲信息请填写完整,后再操作!');
                        var error = song_grid.getCellErrors()[0];
                        song_grid.beginEditCell(error.record, error.column);
                        return;
                    }
                    var row = list_grid.getRowByUID(uid);
                list_grid.loading("更新中,请稍后......");
                    $.ajax({
                        url: "${ctx}/category/updateTimeQuantum.htm",
                        data: {
                                id: row.id,
                                timeQuantum : isTime
                        },
                        type: "post",
                        success: function (text) {
                                list_grid.reload();
                        },
                        error: function (jqXHR, textStatus, errorThrown) {
                            alert(jqXHR.responseText);
                        }
                    });
            }
            
//           //开始时间最大值
//           function MaxonDrawDate(e) {
//              var date = e.date;
//              var endStr=mini.get("TextBox_EndTime").getValue();  //直接获取datepicker的值
//              var endTime=mini.parseDate(endStr);   //字符串转化为日期
//              if (endTime!=null&&date.getTime() > endTime.getTime())
//              {
//                e.allowSelect = false;
//              }
//           }
//          //结束时间最小值   
//          function MinonDrawDate(e) {
//             var date = e.date;
//             var statrStr=mini.get("TextBox_StartTime").getValue(); //直接获取datepicker的值
//             var startTime=mini.parseDate(statrStr);   //字符串转化为日期
//             if (startTime!=null&&date.getTime() < startTime.getTime())
//             {
//                e.allowSelect = false;
//             }
//         }
         
         function onCellCommitEdit(e){
//                 var row=e.row,field=e.field,value=e.value;
//                 if(field=="startTime"){
//                         var date = e.date;
//                      var endStr=mini.get("TextBox_EndTime").getValue();  //直接获取datepicker的值
//                      var endTime=mini.parseDate(endStr);   //字符串转化为日期
//                      if (endTime!=null&&date.getTime() > endTime.getTime())
//                      {
//                        e.allowSelect = false;
//                      }
                       
                       
//                   var c=row.c||0 ,a=row.a;
//                   if(value*1+c*1>a*1){
//                     e.cancel=true;    //阻止掉修改
//                     alert("输入错误")
//                   }
//             }
        }
    </script>

Rank: 2

7#
发表于 2014-10-21 09:15:21 |只看该作者
felt 发表于 2014-10-20 17:22
稍微加点延时看一下能不能展开
如果不能的话,请提供完整重现页面,我们本地看一下 ...

延时测试过 也是无法展开 方法也不生效

Rank: 8Rank: 8

8#
发表于 2014-10-21 11:37:59 |只看该作者
liuwenfeng554 发表于 2014-10-21 09:15
延时测试过 也是无法展开 方法也不生效

var select= dept_grid.getSelected();
var  index = dept_grid.indexOf(select);

刷新完再获取row操作
var row=grid.getRow(index)

Rank: 2

9#
发表于 2014-10-24 15:25:39 |只看该作者
felt 发表于 2014-10-21 11:37
var select= dept_grid.getSelected();
var  index = dept_grid.indexOf(select);

谢谢 解决

Archiver|普加软件

GMT+8, 2024-10-5 19:10 , Processed in 1.048746 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部