• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

CFTree refresh

Guest
Dec 31, 2009 Dec 31, 2009

Copy link to clipboard

Copied

Hello

I have a CFTree bind with a CFC (classic) :

<cfform name="formRootNode" format="html" style="margin:0px;">
    <cftree name="RootNode" height="400" width="200" format="html">
        <cftreeitem bind="cfc:_cfc.cTree.getNodes({cftreeitemvalue},{cftreeitempath})">
    </cftree>   
<cfinput type="button" name="btnRefresh" value="test" onclick="javascript:(ColdFusion.Tree.refresh('RootNode'));" />
</cfform>

but when I click on the refresh button i have an error and i don't know why :

" _1b.parent is null " (/CFIDE/scripts/ajax/package/cftree.js, line 219)

Does anyone know how to fix it ?

PS : I work with coldfusion 9

TOPICS
Advanced techniques

Views

1.4K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jun 02, 2010 Jun 02, 2010

Copy link to clipboard

Copied

I was having the same problem during the last days and hacking into /CFIDE/scripts/ajax/package/cftree.js is the only solution I can come up with:

Look for the function "ColdFusion.Tree.formPath" (line 214) and manipulate it as following:

/*************************/

ColdFusion.Tree.formPath=function(_1b,_1c){
var _1d=ColdFusion.objectCache[_1b.tree.id+"collection"];
if(_1d.completepath==true&&_1b.isRoot()){
  return "";
}else{
  if(_1b.parent==null) return ""; // Adding this line removes the error
  if(_1d.completepath==false&&_1b.parent.isRoot()){
   return "";
  }
}
if(!_1c){
  _1c=_1b;
}
var _1e=ColdFusion.Tree.formPath(_1b.parent,_1c);
_1e=_1e+_1b.data.id;
if(_1c.data.id!=_1b.data.id){
  _1e=_1e+_1d.delimiter;
}
return _1e;
};

/*************************/

Makes the <cftree> refresh, but closes all nodes on my binded tree. But that's probably how it's supposed to be... Hopefully others find this helpful.

Cheers, Boris

Edit:

You could probably just add this function to your regular JavaScript and override the CF-generated one. Manipulating CFIDE could affect others of your application.

Message was edited by: Schwarz Boris

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Jun 04, 2010 Jun 04, 2010

Copy link to clipboard

Copied

hi Boris, thanks for your answer but i have found a better way to solve my problem :

when i update my tree (change or delete a node for exemple), i call a js function :

ColdFusion.Tree.loadNodes([],{'treeid':"RootNode",'parent':mynodeparent});
mynodeparent.expand();

var :

var oTree = ColdFusion.Tree.getTreeObject('RootNode');
var currentNode=oTree._cf_node;
var mynode=oTree.getNodeByProperty('id',currentNode);
var    mynodeparent = mynode.parent;

LoadNodes refresh only the parent node (and all their children inside), then i expand the parent (so that will not close my other nodes )

\0/

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jul 08, 2010 Jul 08, 2010

Copy link to clipboard

Copied

LATEST

Awesomeness! That's even cooler than ColdFusion.Tree.refresh. The only issue I'm having is when I need to reload a node that hasn't got a Parent-Node.

I guess I'll have to go with ColdFusion.Tree.refresh in that special case.

But anyway, thanks for your solution.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation