Bug in SOA Treeview makes 2010.1 unusable

Not Answered This post has 0 verified answers and 2 replies

Top 25 Contributor
Posts: 168
CLAMONT Posted: Tue Apr 13, 2010 @ 7:26 AM

I am testing the FeedBrowser Integration Demo, and can't access my DataKey via JavaScript.  Am I going about this the wrong way?  All my attempts are listed below.

On SoaFeedReaderTreeViewService.svc.cs
                    SoaTreeViewNode oNode = new SoaTreeViewNode();
                    oNode.Text = Convert.ToString(newNode.DisplayName);//was oCategoryTable.DefaultView[i][0]);
                    oNode.Tag = Convert.ToString(newNode.TargetGUID); // NEW PROPERTY I ADDED... This value just disappears on client!!
                    oNode.IconSource = conIconBase + "folder-closed.png";
                    oNode.ExpandedIconSource = conIconBase + "folder-open.png";
                    oNode.IsLoadOnDemandEnabled = true;
                    oNode.Id = "Category";
                    response.Nodes.Add(oNode);


Modify "TheLogic.js"

//Test1
window.TreeView2_NodeSelect = function(sender, eventArgs)
{
  if (!eventArgs.get_node().get_useWebService())
  {
    var view = {
    SoaFilters: [{ DataFieldName: 'FeedName', DataFieldValue: eventArgs.get_node().getProperty("Id")}]  //Datafield == "Feed"
    };

    LoadView(view);
  }
}

//Test2
window.TreeView2_NodeSelect = function(sender, eventArgs)
{
  if (!eventArgs.get_node().get_useWebService())
  {
    var view = {
    SoaFilters: [{ DataFieldName: 'FeedName', DataFieldValue: eventArgs.get_node().get_id()}]  //Datafield == "NULL" !!!!!!! should equal "Feed"
    };

    LoadView(view);
  }
}

//Test3
window.TreeView2_NodeSelect = function(sender, eventArgs)
{
  if (!eventArgs.get_node().get_useWebService())
  {
    var view = {
    SoaFilters: [{ DataFieldName: 'FeedName', DataFieldValue: eventArgs.get_node().get_text()}]  //Datafield works as expected
    };

    LoadView(view);
  }
}

//Test4
window.TreeView2_NodeSelect = function(sender, eventArgs)
{
  if (!eventArgs.get_node().get_useWebService())
  {
    var view = {
    SoaFilters: [{ DataFieldName: 'FeedName', DataFieldValue: eventArgs.get_node().getProperty("Tag")}]  //Datafield == Null
    };

    LoadView(view);
  }
}

All Replies

Top 25 Contributor
Posts: 168
CLAMONT Posted: Tue Apr 13, 2010 @ 7:46 AM
My very ugly workaround is to place my datakey into the display text of the TreeView delimited by a tilde.

Let me know if there is a cleaner way
Not Ranked
Posts: 7
vlsicpre Posted: Thu Aug 19, 2010 @ 3:40 PM
I am seeing the same problem. As you saw there are two Id properties. One is accessible like node.Id (type 1) and the other like node.get_id() (type 2). Type 2 is empty but is needed for the callback so I just wrote an onNodeBeforeExpand event handler to fill the type 2 id from the type 1 id.

 

 

 


function TreeView1_onNodeBeforeExpand(sender, eventArgs) {
   // event handler logic goes here
   // eventArgs is of TreeViewNodeEventArgs type
   var node = eventArgs.get_node();
   node.set_id(node.Id);//there is a bug that leaves the real Id property blank so fill it before callback.
}}

Page 1 of 1 (3 items)