2010-07-26 3 views
0

Je ne peux pas trouver des exemples de la façon dont la charge paresseuse du Infragistics UltraWebTree v6.3Comment charger paresseux Infragistics Contrôle UltraWebTree?

Je trouve que les documents sur le site Infragistics ont tendance à se limiter à la dernière version de leurs contrôles, mais c'est une application héritée qui Je suis incapable de mettre à niveau. Quelqu'un at-il un exemple de code ou des liens qui montrent comment charger des nœuds paresseux dans ce contrôle?

L'implémentation actuelle que nous avons charge 1,35 Mo de html car il peuplera l'arbre entier !! Yikes!

Répondre

0

Il s'est avéré être un simple morceau de JQuery et un service web pour renvoyer les nœuds rendus.

Tout noeud comportant des sous-éléments est initialisé avec le texte "Chargement en cours" afin que le script sache tenter de les récupérer.

<script type="text/javascript" language="javascript"> 
    var imageTypeExpression = "img[imgType='exp'][src$='plus.gif']"; 
    var maxRetries = 5; 
    jQuery(document).ready(function() { 
     jQuery("#T_TreeListCtl " + imageTypeExpression).click(imageClick); 
     jQuery("#tdLists").show(); 
    }); 

    function imageClick() { 
     var parentDivId = jQuery(this).parent().attr('id'); 
     var nodesDiv = '#M_' + parentDivId; 
     if (jQuery(nodesDiv).text() == 'Loading...') { 
      getNodes(parentDivId, nodesDiv, maxRetries); 
     } 
    } 

    function getNodes(parentDivId, nodesDiv, retryCount){ 
     if (retryCount == 0) { 
      jQuery(nodesDiv).html("<div>Loading... failed.</div>"); 
     } 
     else { 
      jQuery.ajax({ type: "POST", 
       url: "WebServices/TreeNodes.asmx/GetChildNodes", 
       data: "{'parentId' :'" + parentDivId + "'}", 
       dataType: "json", 
       contentType: 'application/json; charset=utf-8', 
       success: function(json) { 
        var result = eval("(" + json.d + ")"); 
        jQuery(nodesDiv).html(result.value); 
        jQuery(imageTypeExpression, nodesDiv).click(imageClick); 
       }, 
       timeout: 100, 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        if (textStatus == 'timeout') { 
         getNodes(parentDivId, nodesDiv, retryCount - 1); //keep trying 
        } 
       } 
      }); 
     } 
    } 
</script> 
Questions connexes