jQuery MiniUI

标题: 关于grid编辑的文本编辑赋值的问题急。。。 [打印本页]

作者: 春暖花开    时间: 2013-7-18 20:54:58     标题: 关于grid编辑的文本编辑赋值的问题急。。。

本帖最后由 春暖花开 于 2013-7-18 21:25 编辑

我当前编辑行,我写了一个双击文本框弹框查询的功能,我想在弹框时能将框里面的数据带出来,赋值到后面的编辑框里面,现在我能够取到对应的值却不能将值丢带对应的编辑文本框中,求帮助。
例如文本编辑框是这样的:
<div field="artiid" width="30" headerAlign="center" allowSort="false" >商品编码
              <input property="editor"  class="nui-textbox"/>  
</div>

function onButtonEdit(){
           var t=nui.getbyName("user.ordshtid").value;
      var btnEdit = this;
         nui.open({
                url: "<%=request.getContextPath() %>/order/detail_function_select.jsp",
                title: "订单明细调用入口",
                width: 800,
                height: 480,
                allowResize:false,
             onload:function(){
              var iframe = this.getIFrameEl();
              iframe.contentWindow.SetData(t);
            },
                ondestroy: function (action) {
                   if (action == "ok") {
                        var iframe = this.getIFrameEl();
                        var data = iframe.contentWindow.getData();
                        data = nui.clone(data);    //必须
                        if (data) {
                            btnEdit.setValue(data.ordld);
                            btnEdit.setText(data.ordld);
                             var newRow = {artiid:data.ordno};
                             grid1.addRow(newRow, 0);

                           
                        }
                    }
                }
            });
      
     }
每次总是会增加一行显示,有什么办法让其不增加,且能把值带上去。


作者: factory    时间: 2013-7-19 09:42:16

var newRow = {artiid:data.ordno};
grid1.addRow(newRow, 0);

你写入这2句,就代表表格增加一行的意思啊,去掉不就好了。
弹出编辑的demo我们有很多,你看下就明白了,无非就是一个跨页面的传值
iframe.contentWindow.setData(data)   setData()是子页面的自定义方法。通过调用该方法从父页面调用子页面的方法,把data传递给子页面

你贴的代码中var data = iframe.contentWindow.getData();通过调用子页面的getData()方法,把数据从子页面获取过来,getData()肯定是return了一个数据
作者: 春暖花开    时间: 2013-7-19 09:54:40

不是,值我是在父页面能够拿到,现在的问题是我要把得到的值赋值到当前行编辑的文本框
<div field="artiid" width="30" headerAlign="center" allowSort="false" >商品编码
              <input property="editor"  class="nui-textbox"/>  
</div>
而这个虽然能将值,赋到这个<input property="editor"  class="nui-textbox"/> 上面但是却是新增了一行
var newRow = {artiid:data.ordno};
  grid1.addRow(newRow, 0);
我的意思是在不新增一行的情况下把值赋上去,就是说在还能够在当前行。

作者: 春暖花开    时间: 2013-7-19 10:00:13

在父页面值我是能够拿的到的我现在是想在父页面编辑时能把值赋到编辑文本框上面去
例如:这个<div field="artiid" width="30" headerAlign="center" allowSort="false" >商品编码
              <input property="editor"  class="nui-textbox"/>  
</div>
我用这个var newRow = {artiid:data.ordno};
                             grid1.addRow(newRow, 0);
                           
是能赋值上去但是不是当前行,而是新增了一行我现在是想赋值到当前行的编辑文本框上。
我就是想问能有什么属性能在当前行赋值上去而不是靠新增一行。


作者: factory    时间: 2013-7-19 10:01:33

春暖花开 发表于 2013-7-19 09:54
不是,值我是在父页面能够拿到,现在的问题是我要把得到的值赋值到当前行编辑的文本框
商品编码
           ...

var cell = getCurrentCell();
var column = cell[1];
var row = cell[0];
var editor = grid.getCellEditor(column,row);
editor.setValue(value)

试试
作者: 春暖花开    时间: 2013-7-19 10:06:44

factory 发表于 2013-7-19 10:01
var cell = getCurrentCell();
var column = cell[1];
var row = cell[0];

不行的网页上说有错误
作者: felt    时间: 2013-7-19 10:11:40

你都addRow了,肯定是新增了行,你要本行就updateRow.
作者: factory    时间: 2013-7-19 10:15:03

春暖花开 发表于 2013-7-19 10:06
不行的网页上说有错误

var cell = grid.getCurrentCell();
我写错了
作者: 春暖花开    时间: 2013-7-19 10:26:15

var cell = grid.getCurrentCell();
var column = cell[1];
var row = cell[0];
var editor = grid.getCellEditor("artiid",row);
editor.setValue(data.ordno);
网页上有错误
作者: factory    时间: 2013-7-19 10:59:41

春暖花开 发表于 2013-7-19 10:26
var cell = grid.getCurrentCell();
var column = cell[1];
var row = cell[0];

报什么错




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