【问题标题】:How to lazy load Infragistics UltraWebTree control?如何延迟加载 Infragistics UltraWebTree 控件?
【发布时间】:2011-03-20 23:39:20
【问题描述】:

我找不到任何关于如何延迟加载 Infragistics UltraWebTree v6.3 的示例

我发现 Infragistics 网站上的文档往往仅限于其控件的最新版本,但这是一个我无法升级的旧版应用程序。有没有人有示例代码或链接来演示如何在此控件中延迟加载节点?

我们当前的实现加载了 1.35MB 的 html,因为它正在填充整个树!!哎呀!

【问题讨论】:

    标签: asp.net infragistics ultratree


    【解决方案1】:

    原来是一段简单的 JQuery 和一个返回渲染节点的 web 服务。

    任何具有子项的节点都使用文本“正在加载...”进行初始化,以便脚本知道尝试检索它们。

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      相关资源
      最近更新 更多