2010-12-15 22 views
0

Je lie les données XML à treeview en utilisant XMLDataSource. Son temps de travail, mais quand le nombre de nœuds et childnodes augmente, le treenode se développe et pour afficher le contenu dans iframe prend le temps de moer.comment réduire le temps nécessaire pour remplir le nœud de l'arbre dans asp.net C# treeview?

<asp:TreeView ID="TreeView1" OnSelectedNodeChanged = "OnClick" runat="server" 
        ExpandDepth="0" ShowExpandCollapse="true" ForeColor="Red" Font-Underline = "false" 
        ondatabinding="TreeView1_DataBinding" CollapseImageUrl = "Resources/TocColapse.bmp" ExpandImageUrl = "Resources/TocParent.bmp" Font-Names="Arial" > 
        <SelectedNodeStyle Font-Underline="false" BackColor="White" ForeColor="#0483e0" /> 
        <NodeStyle Font-Size="11pt" ForeColor="white" HorizontalPadding="5px" 
         NodeSpacing="0px" VerticalPadding="0px" Font-Underline = "false" /> 
        <ParentNodeStyle ForeColor="#0483e0" Font-Underline = "false" /> 
        <LeafNodeStyle ForeColor="#0483e0" Font-Underline = "false" ImageUrl = "Resources/TocChild.bmp" /> 

       </asp:TreeView> 
       <asp:XmlDataSource ID="XmlDataSource1" runat="server" XPath="/*/*" EnableCaching = "false" ></asp:XmlDataSource> 

En cas OnDataBinding de TreeView I mis en œuvre le code suivant:

TreeNodeBinding[] TreeNode = new TreeNodeBinding[Count]; 
     for (int i = 0; i < Count; i++) 
     { 
      TreeNode[i] = new TreeNodeBinding(); 
      TreeNode[i].DataMember = TableOfContents[i].GetElementName(); 
      TreeNode[i].TextField = TableOfContents[i].GetFirstAttributeName(); 
      TreeNode[i].ValueField = TableOfContents[i].GetSecondAttributeName(); 
      // TreeNode[i].Target = "contentFrame"; 
      TreeView1.DataBindings.Add(TreeNode[i]); 
     } 

Répondre

2

Bien sûr que oui. Jetez un oeil vers le chargement paresseux.

+0

si j'utilise le OnItemPopulate et populateOndemand = true. Est-il possible d'utiliser XMLDatasource? – Mahantesh

+0

http://www.codegod.de/WebAppCodeGod/TreeView-ASP-NET-Populate-OnDemand-AID409.aspx – Cromathaar

+0

J'ai lu ce tutoriel selon lequel j'ai modifié le code my .. Mais il ne déclenchera pas la méthode OntreeItempopulate ... Voulez-vous modifier mon code en fonction de la reliure paresseuse – Mahantesh

0

Qu'en est mise EnableCaching à "true"?

Etes-vous sûr que vous avez besoin d'afficher tout le xml? Vous pouvez fournir à l'utilisateur un filtrage qui réduit la taille du fichier XML affiché.

+0

Si je définis EnableCaching sur "true" ou false, cela ne fait aucune différence. – Mahantesh

+0

est-il possible de faire en utilisant le drapeau PopulateOndemand .. Mais je n'ai pas eu comment utiliser PopulateOndemand avec XMLDatasource et treeview – Mahantesh

+0

J'ai fourni la fonction d'expansion unique à l'arborescence. Un seul nœud va peupler .. – Mahantesh

0

Essayez de renseigner sur demande.

J'ai utilisé le remplissage à la demande quand le chargement de la vue arborescente du côté client prenait tellement de temps.