jQuery MiniUI

 找回密码
 立即注册
楼主: mfanworld
打印 上一主题 下一主题

grid中用到mini-buttonedit [复制链接]

Rank: 2

11#
发表于 2014-12-23 09:48:15 |只看该作者
felt 发表于 2014-12-23 09:26
你不是自己在oncellbeginedit里面自己更新的和第一行一样?

function beginedit(e){
       var field = e.field;
                        if (field =="dh"){//当列为dh
                                if(grid.getRow(0)!=undefined){//第一行用户输入过数值
                                        //下面代码的意思是取得第一行的数值放入mini-buttonedit里面
                                        grid.updateRow(e.row, {
                                                dh: grid.getRow(0).dh,
                                                dhfild: grid.getRow(0).dhfild
           });
                                }
                                
                        }
    }
现在是用了
grid.updateRow(e.row, {
                                                dh: grid.getRow(0).dh,
                                                dhfild: grid.getRow(0).dhfild
           });
但是grid里面的mini-buttonedit不显示任何东西,不知道什么情况

Rank: 8Rank: 8

12#
发表于 2014-12-23 10:04:35 |只看该作者
mfanworld 发表于 2014-12-23 09:48
function beginedit(e){
       var field = e.field;
                        if (field =="dh"){//当 ...

本地测试可以,你那边还有问题的话
请提供完整重现页面

Rank: 2

13#
发表于 2014-12-23 11:02:10 |只看该作者
felt 发表于 2014-12-23 10:04
本地测试可以,你那边还有问题的话
请提供完整重现页面

代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> </title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

<script src="../template/miniui/boot.js" type="text/javascript"></script>

<!--引入皮肤样式-->
<link href="../template/miniui/themes/other/skin.css" rel="stylesheet"
        type="text/css" />
</head>
<body>
       
    <div id="grid" class="mini-datagrid" style="width:600px;height:280px;" allowResize="true"
          idField="id" url=""
        allowCellEdit="true" allowCellSelect="true"
    oncellbeginedit="beginedit">
                                                        <div property="columns">
                                                                        <div field="dh" width="80" id="dh"  headerAlign="center" name="dh" displyField="dhfile">
                                         列      <input property="editor"  class="mini-buttonedit" allowInput="false" onbuttonclick="onButtonEdit" />
                                      </div>
                           </div>
        </div>
        <script type="text/javascript">
        mini.parse();
        var grid = mini.get("grid");
   window.onload = windowOnload;
   function windowOnload() {  
  
           for(var i = 0; i < 10; i++) {
                   addRow();
           }

}
   function addRow() {
                var newRow = {};
                grid.selectAll(false);
                var leng = grid.getData().length;
                grid.addRow(newRow, leng);
                var row=grid.getRow(leng);
                row._status=null;
                grid.updateRow(row,row);
                grid.deselectAll (false);
        }
   
        function beginedit(e){
                var field = e.field;
                        if (field =="dh"){
                                if(grid.getRow(0)!=undefined){
                                        //这里上实现当鼠标离开后,mini-buttonedit中就显示第一列的值(如果第一列有值)
                                        grid.updateRow(e.row, {
                                                dh: grid.getRow(0).dh,
                                                dhfile: grid.getRow(0).dhfile
                    });
                                }
                               
                        }
        }
      
        
         //////////////////////////////////////////////
         function onButtonEdit(e) {
            var btnEdit = this;
            var index = grid.indexOf (grid.getSelected());
            if(index==0){
                    btnEdit.setValue(1);
                    btnEdit.setText(1);
                    var row = grid.getSelected();
                    row.dhfile=1;
                    grid.updateRow(row,row);
                 }
         }
        
      
    </script>


</body>
</html>

Rank: 8Rank: 8

14#
发表于 2014-12-23 11:26:54 |只看该作者
mfanworld 发表于 2014-12-23 11:02
代码如下:

因为你结束编辑的时候buttonedit里面只有文本没有值,更新到field上,而displayField还是空的
grid.on("cellendedit",function(e){
            var row=e.row;
            var value=e.editor.getText();
            grid.updateRow(row,{dh:value,dhfile:value})
        })

Rank: 2

15#
发表于 2014-12-23 15:29:09 |只看该作者
felt 发表于 2014-12-23 11:26
因为你结束编辑的时候buttonedit里面只有文本没有值,更新到field上,而displayField还是空的
grid.on("c ...

原来要用oncellendedit,我一直用着oncellbeginedit,南辕北辙,难怪不能实现。十分感谢。

Archiver|普加软件

GMT+8, 2024-9-29 15:35 , Processed in 1.038691 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部