0
我無法找到如何延遲加載的Infragistics UltraWebTree V6.3如何延遲加載Infragistics UltraWebTree控件?
我發現,在網站的Infragistics的文檔往往侷限於自己控制的最新版的例子,但是這是一箇舊的應用程序,它我無法升級。有沒有人獲得示例代碼或鏈接,演示如何在此控件中延遲加載節點?
當前的實現,我們加載了1.35MB的HTML,因爲它是填充整個樹!哎呀!
我無法找到如何延遲加載的Infragistics UltraWebTree V6.3如何延遲加載Infragistics UltraWebTree控件?
我發現,在網站的Infragistics的文檔往往侷限於自己控制的最新版的例子,但是這是一箇舊的應用程序,它我無法升級。有沒有人獲得示例代碼或鏈接,演示如何在此控件中延遲加載節點?
當前的實現,我們加載了1.35MB的HTML,因爲它是填充整個樹!哎呀!
它是一個簡單的JQuery和web服務來返回渲染的節點。
任何具有子項目的節點都將初始化爲文本「Loading ...」,以便腳本知道嘗試檢索它們。
<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>