jQuery MiniUI

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

mini-treeselect在mini-datagrid中使用问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-8-29 10:27:36 |只看该作者 |倒序浏览
想得到树中某一个选中节点及其所有父节点的值,包括value和text,怎么得到,有没有一个事件在选择某一项时进行得到选择的节点的值并进行一些操作,然后再关闭树,显示值,使用普通树的方法不行

Rank: 8Rank: 8

沙发
发表于 2014-8-29 10:35:27 |只看该作者
请描述清楚你要做什么

Rank: 3Rank: 3

板凳
发表于 2014-8-29 11:12:09 |只看该作者
felt 发表于 2014-8-29 10:35
请描述清楚你要做什么

在mini-datagrid中,单元行编辑器中,使用mini-treeselect,点击展现这个树,选择这个树中Ajax节点,他的父节点是Base,我的需求是返回父节点和子节点的值,值包括id,text,放入行编辑器中,或是放至本行相邻一列中,再添加一行后,可执行上边相同操作。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

地板
发表于 2014-8-29 13:54:04 |只看该作者
覆霜雪 发表于 2014-8-29 11:12
在mini-datagrid中,单元行编辑器中,使用mini-treeselect,点击展现这个树,选择这个树中Ajax节点,他的 ...

监听oncellendedit自己获取数据去处理

Rank: 3Rank: 3

5#
发表于 2014-8-29 14:14:48 |只看该作者
felt 发表于 2014-8-29 13:54
监听oncellendedit自己获取数据去处理

选择这个树中节点,怎么能得到所有父节点,oncellendedit怎么用,给代码看看

Rank: 8Rank: 8

6#
发表于 2014-8-29 14:39:38 |只看该作者
覆霜雪 发表于 2014-8-29 14:14
选择这个树中节点,怎么能得到所有父节点,oncellendedit怎么用,给代码看看 ...

treeselect不支持树的复杂操作
可以用buttonedit+mini.open,弹出页面中放入tree

Rank: 3Rank: 3

7#
发表于 2014-8-29 16:16:28 |只看该作者
felt 发表于 2014-8-29 14:39
treeselect不支持树的复杂操作
可以用buttonedit+mini.open,弹出页面中放入tree

   <!-- 这是  主页面  datagrid中的编辑器 -->      
   <div name="course"  field="course" headerAlign="center"  width="150" renderer="onCourseRenderer">练习节点
                    <input id="courseId" name="courseId" property="editor" class="mini-buttonedit" width="300px" />
    </div>

                    //弹出文本框  弹出科目树页面                function onButtonEdit(e) {                    var btnEdit = this;                    mini.open({                        url: "${ctx}/login/test!totesttree",                            title: "多选树",                        width: 350,                        height: 350,                             onload: function () {                                   var ifr = this.getIFrameEl();                                   var data = { action: "tree"};                                   ifr.contentWindow.SetData(data);                            },                                                              ondestroy: function (action) {                            if (action == "ok") {                                var iframe = this.getIFrameEl();                                                                var data = iframe.contentWindow.GetData();                                                                data = mini.clone(data);                                                                                        btnEdit.setValue(data.id);                                btnEdit.setText(data.text);                            }                        }                    });                                                 }

这里得到的文本“other”都是最后一条记录1005的文本,第一条应该为Base,Ajax,第二条应为

   <!-- 这是 树页面  中的返回数据的函数 -->  
    function GetData() {        var node = tree.getSelectedNode();                var nodeText = "";                var nodeId = "";            var node = tree.getSelectedNode();            var pnode = tree.getAncestors ( node );            if (node) {                for (var i = 0, l = pnode.length; i < l; i++) {                    var p = pnode;                    if(i!=0){                        nodeText = nodeText + p.text + ",";                        nodeId = nodeId + p.id + ",";                    }
                }                                nodeText = nodeText + node.text;                node.text = nodeText;                node.id =  nodeId + node.id;            } else {                alert("请选中节点");            }        return node;    }



请帮忙看看哪里出的错,应该修改哪里呀???


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

8#
发表于 2014-8-29 17:20:03 |只看该作者
覆霜雪 发表于 2014-8-29 16:16
练习节点
                    
     

你这代码根本看不清啊。。。
http://www.miniui.com/demo/#src=datagrid/rowedit_openwindow.html
参考这个例子,直接grid.updateRow去更新数据

Rank: 3Rank: 3

9#
发表于 2014-9-1 11:05:13 |只看该作者
felt 发表于 2014-8-29 17:20
你这代码根本看不清啊。。。
http://www.miniui.com/demo/#src=datagrid/rowedit_openwindow.html
参考这 ...

  <!-- 这是  主页面  datagrid中的编辑器 -->
  1.   <div name="course"  field="course" headerAlign="center"  width="150" renderer="onCourseRenderer">练习节点
  2.                     <input id="courseId" name="courseId" property="editor" class="mini-buttonedit" width="300px" />
  3.     </div>
复制代码
//弹出文本框  弹出科目树页面方法
  1.          function onButtonEdit(e) {
  2.                     var btnEdit = this;
  3.                     mini.open({
  4.                         url: "",   
  5.                         title: "多选树",
  6.                         width: 350,
  7.                         height: 350,
  8.                             onload: function () {
  9.                                    var ifr = this.getIFrameEl();
  10.                                    var data = { action: "tree"};
  11.                                    ifr.contentWindow.SetData(data);
  12.                             },                                      
  13.                         ondestroy: function (action) {
  14.                             if (action == "ok") {
  15.                                 var iframe = this.getIFrameEl();
  16.                                
  17.                                 var data = iframe.contentWindow.GetData();
  18.                                
  19.                                 data = mini.clone(data);
  20.                                                        
  21.                                 btnEdit.setValue(data.id);
  22.                                 btnEdit.setText(data.text);
  23.                             }
  24.                         }
  25.                     });            
  26.                      
  27.                 }
复制代码


这里得到的文本,第一条应该为Base,Ajax,第二条应为Lists,第三条应该为Other,但现在三条得到的都是Other


//这里是树页面GetData方法
  1.     function GetData() {
  2.         var node = tree.getSelectedNode();
  3.                 var nodeText = "";
  4.                 var nodeId = "";
  5.             var node = tree.getSelectedNode();
  6.             var pnode = tree.getAncestors ( node );
  7.             if (node) {
  8.                 for (var i = 0, l = pnode.length; i < l; i++) {
  9.                     var p = pnode[i];
  10.                     if(i!=0){
  11.                         nodeText = nodeText + p.text + ",";
  12.                         nodeId = nodeId + p.id + ",";
  13.                     }

  14.                 }               
  15.                 nodeText = nodeText + node.text;
  16.                 node.text = nodeText;
  17.                 node.id =  nodeId + node.id;
  18.             } else {
  19.                 alert("请选中节点");
  20.             }
  21.         return node;
  22.     }
复制代码



附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

10#
发表于 2014-9-1 13:49:29 |只看该作者
覆霜雪 发表于 2014-9-1 11:05
//弹出文本框  弹出科目树页面方法


看下这个例子是不是你要的效果
如果不是的话,把你的页面打包发上来

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Archiver|普加软件

GMT+8, 2025-7-21 08:17 , Processed in 1.060556 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部