jQuery MiniUI

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

showRowDetail动态获取form对象问题 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2016-11-15 10:26:51 |只看该作者 |倒序浏览
业务场景
gird中查看详情,希望动态获取变量。因为页面设计查看详情很多。


开发代码
function onShowRowDetail(e) {    var idx=1;
    var row = e.record;
    var editForm = document.getElementById("editForm"+idx);
//将editForm元素,加入行详细单元格内
var gridIdx = mini.get("datagrid"+idx);
var td = gridIdx.getRowDetailCellEl(row);
td.appendChild(editForm);
editForm.style.display = "";
//表单加载支柱信息
var form = new mini.Form("editForm"+idx);
form.setData(row);
}

问题
首次点击grid查看详情没问题,点击查询后,再点击查看详情就会提示editForm对象为空。
即代码行:var editForm = document.getElementById("editForm"+idx);
请问如何解决在onShowRowDetail方法动态获取 editForm 对象。

Rank: 8Rank: 8

沙发
发表于 2016-11-15 10:46:22 |只看该作者
既然这个editForm是固定的,请用全局变量保存

Rank: 1

板凳
发表于 2016-11-15 10:49:30 |只看该作者
felt 发表于 2016-11-15 10:46
既然这个editForm是固定的,请用全局变量保存

当一个页面显示多个grid时,代码重用性很差。是否能提供其他替代方案?

Rank: 8Rank: 8

地板
发表于 2016-11-15 10:57:44 |只看该作者
anxingyu 发表于 2016-11-15 10:49
当一个页面显示多个grid时,代码重用性很差。是否能提供其他替代方案?

那只能动态生成form了

Rank: 1

5#
发表于 2016-11-15 11:07:49 |只看该作者
felt 发表于 2016-11-15 10:57
那只能动态生成form了

可以有具体的例子吗

Rank: 8Rank: 8

6#
发表于 2016-11-15 13:41:23 |只看该作者
anxingyu 发表于 2016-11-15 11:07
可以有具体的例子吗

function createForm() {
            var detailGrid_Form = document.createElement("div");
            detailGrid_Form.innerHTML = '<table style="width:100%;">'
            +'<tr>'
             +  ' <td style="width:80px;">员工帐号:</td>'
              +  '<td style="width:150px;"><input name="loginname"  /></td>'
              +  '<td style="width:80px;">姓名:</td>'
               +' <td style="width:150px;"><input name="name"  /></td>'
               +' <td style="width:80px;">薪资:</td>'
               +' <td style="width:150px;"><input name="salary"  /></td>'
           +' </tr><table>'
           var obj = {
               detailGrid_Form: detailGrid_Form
           }
           return obj; ;
        }


function onShowRowDetail(e) {
            var grid = e.sender;
            var row = e.record;


            var td = grid.getRowDetailCellEl(row);
            if (td.childNodes.length != 0) return;


            var obj = createForm();
     
            var detailGrid_Form = obj.detailGrid_Form;

            td.appendChild(detailGrid_Form);
         
           
        }

Archiver|普加软件

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

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部