troubleshooting Question

TreeView to XML (serialization) - Written in C# for an Intranet

Avatar of dsiemon
dsiemon asked on
XML.NET ProgrammingASP.NET
1 Comment1 Solution5674 ViewsLast Modified:
OK, I have a very nice TreeView, nodes, and many levels deep
What i want to do is to save my TreeView to an XML File.. I am guessing this uses some type of Serialization

My undestanding is that there is more to Saving it, and then being able to Reload it, binding to the Treeview..
I think the routines to write the TreeView to XML are going to have to be write the XML a certain way, and then (MAYBE, if it is even needed)\produce an XSLT file too.. That way, if i want to Bind it to the Tree (XML to Treeview), i can just set the DataBinding and be done with it.. again, from what i understand..

Can someone help  build this? I could realy use the help

Thanks

 DSiemon
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.ComponentModel;
//using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Text;
 
namespace Hilti_Reorg
{
    public partial class _Default : System.Web.UI.Page
    {
        private SqlConnection sqlcon;
        protected void Page_Load(object sender, EventArgs e)
        {
 
                    
            DataSet dsNodeList = null;
            //showData();
            TreeView1.TreeNodeDataBound += bindNode;
 
            hilti(dsNodeList);
            //hilti_temp();
           
        }
        
  
 
        private void hilti(DataSet dsNodeList)
        {
            dsNodeList = ExecuteSP("GetTreeNodes2", null);
           // dsNodeList.WriteXml("C:\\OutputXML.xml"); 
            TreeView1.DataSource = new HierarchicalDataSet(dsNodeList, "ID", "ParentId");
           
            //HierarchicalDataSet ds = new HierarchicalDataSet(dsNodeList, "ID", "ParentId");
            //TreeView1.DataSource = ds;
            TreeView1.DataBind();
            //this.TreeView1.Attributes.Add("oncontextmenu", "RightClick();");
            //this.TreeView1.Attributes.Add("oncontextmenu", "TVRightClick();");
           //this.TreeView1.Attributes.Add("oncontextmenu", "TVRightClick();");
            TreeView1.Attributes.Add("onclick", "OnTreeClick(event);");
            //CallRecursive();
           //Declare Variable to geneate Random Number
           // SaveFileDialogsaveFile = new SaveFileDialog();
            //string strDir=""
           //string strFileName = "myTreeView.xml";
            //if (saveFile.ShowDialog() != DialogResult.OK) return;
 
            //TreeViewSerializer serializer = new TreeViewSerializer();
           // serializer.SerializeTreeView(TreeView1, strFileName);
 
 
  }
 
protected void bindNode(Object sender, TreeNodeEventArgs e)
{
    //TreeNode node = (TreeNode)e.Node ;
    //node.SelectAction.Attributes.Add("oncontextmenu", "TVRightClick();");
}
 
 
 
 protected void cmdCheckSelectNode1_Click (Object sender, System.EventArgs e) 
 {
//Checks If Parent Node has Child Node
 
if (TreeView1.CheckedNodes.Count > 0)
 {
 
//Display your selected nodes
 
 //For Each node = TreeNode In myTreeView.CheckedNodes
  foreach(System.Web.UI.WebControls.TreeNode node in TreeView1.CheckedNodes)
    {
     lblShowMessage.Text += node.Text + " " + node.Parent.Text + " ";
 
    }
 
 
 }
else
 {
     lblShowMessage.Text = "Sorry! You didnt select any node";
 }
 
 
 
 
}
 
 
        private void hilti_temp()
        {
            DataSet dataSet = new DataSet();
 
            dataSet.Tables.Add("Table");
            dataSet.Tables[0].Columns.Add("ID", typeof(int));
            dataSet.Tables[0].Columns.Add("ParentID", typeof(int));
            dataSet.Tables[0].Columns.Add("Text", typeof(string));
 
            DataRow row = dataSet.Tables[0].NewRow();
            row["ID"] = 1;
            row["Text"] = "Hilti";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 2;
            row["ParentID"] = 1;
            row["Text"] = "Corporate - Other";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 3;
            row["ParentID"] = 1;
            row["Text"] = "Hilti Australia";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 4;
            row["ParentID"] = 1;
            row["Text"] = "Hilti External Customers";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 5;
            row["ParentID"] = 4;
            row["Text"] = "A.P Savage";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 6;
            row["ParentID"] = 4;
            row["Text"] = "Appalachian Equipment";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Brock-White Company";
            row["ID"] = 7;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Brock-White Company Canada";
            row["ID"] = 8;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "CED Diamond Springs";
            row["ID"] = 9;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Contractor Supply Inc.";
            row["ID"] = 10;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Darragh Company";
            row["ID"] = 11;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Handyman Rentals";
            row["ID"] = 12;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Hartmann Building Specialty";
            row["ID"] = 13;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Heartland Industrial Supply Inc.";
            row["ID"] = 14;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
          
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Highland Lumber Company";
            row["ID"] = 15;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Hub Construction Supply";
            row["ID"] = 16;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "HUB Construction Supply - Sacramento";
            row["ID"] = 17;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
            
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Just Ask Rentals";
            row["ID"] = 18;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
         
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Lincoln Creek Lumber";
            row["ID"] = 19;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Mesquite Tool & Supply";
            row["ID"] = 20;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
          
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Pioneer Materials West Slope";
            row["ID"] = 21;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Pro Tool";
            row["ID"] = 22;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
         
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Ribco Supply";
            row["ID"] = 23;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
           
 
             row = dataSet.Tables[0].NewRow();
            row["Text"] = "Roethele Building Materials";
            row["ID"] = 24;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Stetson Building Products, Inc.";
            row["ID"] = 25;
            row["ParentID"] = 4;
            dataSet.Tables[0].Rows.Add(row);
           
 
             row = dataSet.Tables[0].NewRow();
            row["Text"] = "Hilti Latin America";
            row["ID"] = 26;
            row["ParentID"] = 1;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "ARGENTINA";
            row["ID"] = 27;
            row["ParentID"] = 26;
            dataSet.Tables[0].Rows.Add(row);
         
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Marketing Product Manager";
            row["ID"] = 28;
            row["ParentID"] = 27;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Field Engineer";
            row["ID"] = 29;
            row["ParentID"] = 28;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Field Engineer";
            row["ID"] = 30;
            row["ParentID"] = 28;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Marketing Product Assistant";
            row["ID"] = 31;
            row["ParentID"] = 28;
            dataSet.Tables[0].Rows.Add(row);
         
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Sales Director";
            row["ID"] = 32;
            row["ParentID"] = 28;
            dataSet.Tables[0].Rows.Add(row);
            
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "BC Supervisor";
            row["ID"] = 33;
            row["ParentID"] = 32;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "CS Supervisor";
            row["ID"] = 34;
            row["ParentID"] = 32;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "HC Supervisor";
            row["ID"] = 35;
            row["ParentID"] = 32;
            dataSet.Tables[0].Rows.Add(row);
         
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "I&G Supervisor";
            row["ID"] = 36;
            row["ParentID"] = 32;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Region Cuyo Supervisor";
            row["ID"] = 37;
            row["ParentID"] = 32;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "CARIBE";
            row["ID"] = 38;
            row["ParentID"] = 26;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Marketing Manager";
            row["ID"] = 39;
            row["ParentID"] = 38;
            dataSet.Tables[0].Rows.Add(row);
           
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Sales Manager";
            row["ID"] =40;
            row["ParentID"] = 38;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "CHILE";
            row["ID"] = 41;
            row["ParentID"] = 26;
            dataSet.Tables[0].Rows.Add(row);
          
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Fleet Management Manager";
            row["ID"] = 42;
            row["ParentID"] = 41;
            dataSet.Tables[0].Rows.Add(row);
         
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Sales Director - Center";
            row["ID"] = 42;
            row["ParentID"] = 41;
            dataSet.Tables[0].Rows.Add(row);
 
 
            //dataSet.WriteXml("C:\\OutputXML2.xml"); 
            TreeView1.DataSource = new HierarchicalDataSet(dataSet, "ID", "ParentID");
            TreeView1.DataBind();
        }
 
        private void showData()
        {
             DataSet dataSet = new DataSet();
 
            dataSet.Tables.Add("Table");
            dataSet.Tables[0].Columns.Add("ID", typeof(int));
            dataSet.Tables[0].Columns.Add("ParentID", typeof(int));
            dataSet.Tables[0].Columns.Add("Text", typeof(string));
 
            DataRow row = dataSet.Tables[0].NewRow();
            row["ID"] = 1;
            row["Text"] = "Parent 1";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 2;
            row["Text"] = "Parent 2";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 3;
            row["ParentID"] = 1;
            row["Text"] = "Child 1";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 4;
            row["ParentID"] = 1;
            row["Text"] = "Child 2";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 5;
            row["ParentID"] = 2;
            row["Text"] = "Child 3";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["ID"] = 6;
            row["ParentID"] = 2;
            row["Text"] = "Child 4";
            dataSet.Tables[0].Rows.Add(row);
 
            row = dataSet.Tables[0].NewRow();
            row["Text"] = "Child 6";
            row["ID"] = 7;
            row["ParentID"] = 5;
            dataSet.Tables[0].Rows.Add(row);
 
          
 
            TreeView1.DataSource = new HierarchicalDataSet(dataSet, "ID", "ParentID");
            TreeView1.DataBind();
           
        }
        
 
        private System.Data.DataSet ExecuteSP(string spname, string[][] parmArry)
        {
 
            System.Data.DataSet dsResult = new System.Data.DataSet();
 
            string strParameterNam;
 
            string strParameterVal;
 
            try
            {
 
                sqlcon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
 
                if (sqlcon.State == System.Data.ConnectionState.Closed)
                {
 
                    sqlcon.Open();
 
                }
 
 
                SqlCommand cmd = sqlcon.CreateCommand();
 
                cmd.CommandText = spname;
 
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
 
 
                if (parmArry != null)
                {
 
                    for (int index = 0; index < parmArry.Length; index++)
                    {
 
                        strParameterNam = parmArry[index][0];
 
                        strParameterVal = parmArry[index][1];
 
                        if (strParameterNam != null && strParameterVal != null)
                        {
 
 
                        }
 
 
                    }
 
                }
 
                SqlDataAdapter da = new SqlDataAdapter(cmd);
 
                da.Fill(dsResult);
 
            }
 
            catch (Exception ex)
            {
 
                dsResult = null;
 
                Response.Write(ex.Message);
 
            }
 
            finally
            {
 
                sqlcon.Close();
 
 
            }
 
            return dsResult;
 
        }
 
 
    }
}
--------------------------------The ASPX Page-----------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Hilti_Reorg._Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>xTreeView</title>
    <style type="text/css">
<!--
 
.skin0{
position:absolute;
width:140px;
border:2px solid black;
background-color:menu;
font-family:Verdana;
line-height:20px;
cursor:default;
font-size:14px;
z-index:100;
visibility:hidden;
}
 
.menuitems{
padding-left:10px;
padding-right:10px;
font-family:Verdana;
font-size:12px;
color:black;
}
-->
</style>
 
</head>
    
 
<body>
 <script type="text/javascript">
var menuskin = "skin0"; 
var display_url = 1; // Show URLs in status bar?
</script>
 
  <form id="theform" runat="server">
  <div id="ie5menu" class="skin0" onmouseover="highlightie5()" onmouseout="lowlightie5()"
            onclick="jumptoie5();">
            
        </div>
 
    <div>
 <asp:TreeView ID="TreeView1" runat="server" ImageSet="Arrows" PathSeparator="|" ShowCheckBoxes="All">
 
 
 
<HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
 
 
 
<SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"      VerticalPadding="0px" />
 
 
 
<NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"      NodeSpacing="0px" VerticalPadding="0px" />
 
            <DataBindings>
                <asp:TreeNodeBinding DataMember="System.Data.DataRowView" 
                    TextField="Text" ValueField="ID" />
            </DataBindings>
 
</asp:TreeView>
 
 <asp:Panel ID="Panel2"  runat="server" style="display:none" BorderColor="Black" CssClass="skin0" onMouseover="highlightie5(event)" onMouseout="lowlightie5(event)" onClick="jumptoie5(event)"  >
                <div class="menuitems"><asp:LinkButton ID="LinkButton1" runat="server"   CssClass="menuitems" >New Node</asp:LinkButton></div>
                <div class="menuitems"><asp:LinkButton ID="LinkButton2" runat="server"   CssClass="menuitems">Edit Node</asp:LinkButton></div>
                <hr />
                <div class="menuitems"><asp:LinkButton ID="LinkButton3" runat="server"   CssClass="menuitems">Delete Node</asp:LinkButton></div>
                <hr />
                <div class="menuitems"><asp:LinkButton ID="LinkButton4" runat="server"   CssClass="menuitems">FAQS</asp:LinkButton></div>
                <div class="menuitems"><asp:LinkButton ID="LinkButton5" runat="server"   CssClass="menuitems">Online Help</asp:LinkButton></div>
                <hr />
                <div class="menuitems"><asp:LinkButton ID="LinkButton6" runat="server"   CssClass="menuitems">Email Me</asp:LinkButton></div>
            </asp:Panel>
            <br />
            <a href=""  > </a>
 
<asp:Button ID="cmdCheckSelectNode1" runat="server" Text="Nodes Selected" /><br /><br />
 
 
 
<asp:Label ID="lblShowMessage" runat="server" />  
 
  
    </div>
   </form>
<script src="xtreeview.js"  type="text/javascript"></script>
<script src="NodeStates.js"  type="text/javascript"></script>
<script src="CheckBoxes.js"  type="text/javascript"></script>
   <script type="text/javascript">
 
    // if (document.all) {
     //    ie5menu.className = menuskin;
    //     document.getElementById('TreeView1').oncontextmenu = showmenuie5;
     //    document.body.onclick = hidemenuie5;
    //  }
  var tree = document.getElementById("TreeView1");
  var tags = tree.getElementsByTagName("A");
  for(var i = 0; i < tags.length; i++){
    tags[i].oncontextmenu = test;//"alert('" + tags[i].id + "'); return false"; 
    tags[i].href = "javascript:void(null);";
    //if(i%300 == 0) alert(tags[i].outerHTML);     
  }
  function test()
  {
    //alert(event.srcElement.id);
    ie5menu.className = menuskin;
    showmenuie5();
 
 
    return false;
  }
 
    document.body.onclick = hidemenuie5; 
    </script>
    
   
</body>
</html>
-----------------------------------------------------------------------------
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 1 Comment.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 1 Comment.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros