Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
145
UltraWebTree ManualSmartCallback and Drag Drop
posted

Hello everyone,

 I have an Inftragistics tree control in my application that is configured to do load on demand with manualsmartcallbacks. I would also like to give my users the ability to drag and drop elements in the tree. After the drop has occured I add the dropped node as a child of the target node; after whice I use javascript to expand the target node.

Everything operates fine with one exception. Everytime I do a drag/drop, I notice that my browser (IE7) gets stuck loading something. The problem goes away once I expand/collapse any node in the tree. Unfortunatly if I don't do this before I try to do anything else on the tree (like delete a node), then I get a System.Data stack overflow exception. I know the problem exists with adding the node because if I remove that code the problem does away. Below is the drop event handler on my tree.

 

function uwtFolders_Drop(oTree, oNode, oDataTransfer, oEvent)

{         if (oNode.getTag() == null)

         {

                  oNode.setTag(oNode.getDataKey());

         }

        if (oDataTransfer.sourceObject.getTag() == null)

        {

                  oDataTransfer.sourceObject.setTag(oDataTransfer.sourceObject.getDataKey());

        }

        if (!oNode.isChildOf(oDataTransfer.sourceObject))

        {

                  //UpdateFolder(GetWorkspaceId(),oNode.getTag(),oDataTransfer.sourceObject.getTag(),oDataTransfer.sourceObject.getText());

 

                  var newNode = oNode.addChild('Test');

                  // newNode.setTag(oDataTransfer.sourceObject.getTag());

                  // MoveNodes(newNode,oDataTransfer.sourceObject);

                  oDataTransfer.sourceObject.remove();

                  //oNode.setExpanded(true);

       }

       return true;

}

And here is the tree:

 

<ignav:UltraWebTree id="uwtFolders" runat="server" Cursor="Default" ForeColor="Black" Font-Size="8pt"

Font-Names="Verdana" BorderColor="Pink" BorderStyle="None" Height="400px" Width="300px" Indentation="20"

WebTreeTarget="ClassicTree" LoadOnDemand="ManualSmartCallbacks" CompactRendering="False" EnableViewState="False"

SingleBranchExpand="True" DataKeyOnClient="true" AllowDrag="true" AllowDrop="true">

<SelectedNodeStyle ForeColor="Black" BackColor="#CCCCCC"></SelectedNodeStyle>

<Images>

<CollapseImage Url="./images/exp.gif" />

<ExpandImage Url="./images/col.gif" />

</Images>

<ClientSideEvents InitializeTree="uwtFolders_InitializeTree" NodeClick="uwtFolders_NodeClick" AfterNodeUpdate="uwtFolders_AfterNodeUpdate" Drop="uwtFolders_Drop"/>

</ignav:UltraWebTree>

  • 145
    posted

    Bleh Ok NVM sorry about that last post. I figured out about 30 min after I made this post what I had done. The control has lot of ajax functionality so in order to maximize performance I make all the data calls I need for the folders in my explorer control and store that data in a persistant dataset. Any changes to the folder structure (updating folder names, changing the parent, adding/deleteing a folder) are saved to the database and then the changes are made to the indexed dataset. During one of those operations I was inadvertantly updateing the datasets "PARENT_FOLDER_ID" column to be the same ID of the folder I was working with. So, when I was trying to delete the folder and its children my application would just go into an infinite loop.

     Unfortunatly I completely missed this as I was in a mad rush to get the control (and serveral others) done and pushed out for a demonastration in a 3 day window. The browser showing that it would continually load after a drag drop was throwing my already fried brain into a spin. The continuous browser load still bothers me.

     Anyways thanks to anyone who looked at this thread attempting to help.