EasyUI Forum
September 13, 2025, 09:09:43 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Copy treegrid row  (Read 8654 times)
hande89
Jr. Member
**
Posts: 56


View Profile
« on: November 04, 2014, 02:47:32 AM »

Any advice on copying a treegrid row including its children? I'd like to append new rows with same details.
Logged
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #1 on: November 04, 2014, 07:28:21 AM »

Just call 'find' method to find a specified row.
Code:
var row = $('#tg').treegrid('find', id);
var node = $.extend(true,{},row);  // clone the row
console.log(node);
Logged
hande89
Jr. Member
**
Posts: 56


View Profile
« Reply #2 on: November 04, 2014, 09:00:23 AM »

I'd like to append it to root level. But IDs are in conflict. So I should change them and remove parentId property from node if it's not a root node.
Logged
hande89
Jr. Member
**
Posts: 56


View Profile
« Reply #3 on: November 04, 2014, 11:47:47 AM »

Found a rough solution:

Code:
var new_id = new_id || '';
var orig_new_id = new_id;
var rx = /"id":(\d+)/g;
var rx2 = /"_parentId":(\d+)/g;
var node = $('#tg').treegrid('getSelected');
var node_json = JSON.stringify(node);
node_json2 = node_json.replace(rx,function(){new_id = new_id+' '; return "\"id\":"+"\""+new_id+"\"";});
new_id = orig_new_id;
node_json2 = node_json2.replace(rx2,function(){new_id = new_id+' '; return "\"_parentId\":"+"\""+new_id+"\"";});
node = JSON.parse(node_json2);
delete node._parentId;
$('#tg').treegrid('append',{'data':[node]});

New ID could be a running number but I need it to come from database anyway.
« Last Edit: November 04, 2014, 12:26:26 PM by hande89 » Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!