2012-02-29 37 views
0

我使用树& treegrid查询插件:http://www.jeasyui.com/demo/index.php 我想拖动n拖放当前存在的功能,但问题是我想复制节点,而不是移动它。 另外我想编辑treegrid节点双击&保存在ENTER上。我能够编辑dbl点击节点,但是dnt knw如何捕获ENTER事件!下面 是,我有编辑节点实现代码:jquery easyui树拖放&输入

<table id="bomSubTree" style="width:600px;height:300px"> </table> 
.......     

$('#bomSubTree').treegrid({ 
    height: 550, 
    //width:600, 
    dnd: true, 
    method: 'get', 
    treeField: 'text', 
    idField: "oid", 
    pagination: "true", 
    fitColumns: "true", 
    url: '/product_configurator/populate_sub_tree.json', 
    columns: [ 
     [{ 
      field: 'quantity', 
      title: 'Quantity', 
      width: 100, 
      editor: "numberbox", 
      align: "right" 
     } 

     ] 
    ], 
    frozenColumns: [ 
     [{ 
      title: 'Name', 
      field: 'text', 
      width: 500 
     }] 
    ], 

    onDblClickRow: function (row) { 

     $(this).treegrid('beginEdit', row.oid); 
    } 
});` 

能ANY1请帮助我!?

+1

您可以通过keycode值13捕获Enter事件.. – 2012-03-02 06:22:30

+0

thnx that .. – Shruti 2012-03-20 07:55:52

+0

嗨,@Shruti欢迎。 :) – 2012-03-20 10:05:17

回答

0

请尝试执行以下操作:

当您将节点定义为可拖动时,将其恢复选项设置为true。这意味着他们将回到他们现有的位置。

然后,修改ondrop功能,使其在拖动源将源到您的目标节点,如拖放演示

onDrop:function(e,source){ 
        if ($(source).hasClass('assigned')){ 
         $(this).append(source); 
        } else { 
         var c = $(source).clone().addClass('assigned'); 
         $(this).empty().append(c); 
         c.draggable({ 
          revert:true 
         }); 
        } 
       } 

这基本上意味着你的节点将被送回其拖动后的原始位置停止,但无论您停止拖动节点,都将被克隆和附加,并且也会再次拖动。

+0

thnx swader..but hw我可以设置回复:真正的节点树从JSON填充? im lil在树木薄弱: – Shruti 2012-03-21 04:22:53

+0

我得到的错误:对象#有没有方法'cloneNode' – Shruti 2012-03-21 04:40:37

+0

你能给我实际的树木数据,所以我可以检查一个现场的例子吗? – Swader 2012-03-21 10:51:14