程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅-高性能ASP.NET樹狀列表控件(中)(4)

C#發現之旅-高性能ASP.NET樹狀列表控件(中)(4)

編輯:關於C語言

第三段Html代碼塊

WEB控件還會輸出一個名為“SkyTreeViewControlExpendNodebyID”的Javascript函數,該函數用於展開或收縮節點,而與之配套的定義了一個名為SkyTreeVIEwControlCurrentTreeNode的全局變量,用於保存當前高亮度顯示的節點的編號。這段Javascript代碼為

// 定義樹狀列表的當前節點對象
var SkyTreeVIEwContrlCurrentTreeNode ;

//
//---------------- 展開指定編號的樹狀列表的節點---------------
// 參數strID 指明節點的ID號
// 參數bolSelect 指明是否高亮度顯示這個樹狀列表節點
//
function SkyTreeVIEwContrlExpendNodeByID(strID , bolSelect )
{
    // 獲得節點的展開點圖片對象
    var myExpend    = document.getElementById(strID + '_expend');
    // 獲得節點的圖標圖片對象
    var myIcon        = document.getElementById(strID + '_icon');     
    // 獲得節點的文本對象
    var myText        = document.getElementById(strID + '_text');     
    // 獲得子節點表格
    var myTable        = document.getElementById(strID + '_table'); 
    if( myText == null )
        return ;
    if( bolSelect )
    {
        // 設置樹狀列表節點高亮度顯示
        if( SkyTreeVIEwContrlCurrentTreeNode != myText
            && SkyTreeVIEwContrlCurrentTreeNode != null)
        {
            SkyTreeViewContrlCurrentTreeNode.className = 'SkyTreeVIEwControl_TreeNode';
        }

        SkyTreeVIEwContrlCurrentTreeNode = myText;
        SkyTreeViewContrlCurrentTreeNode.className = 'SkyTreeVIEwControl_SelectedNode';
    }

    
    // 展開或收縮子節點
    if( myExpend != null 
        && myIcon != null
        && myTable != null )
    {
        // 切換節點前面的展開或收縮樣式的圖標
        var SrcBack = myIcon.src ;
        myIcon.src = myIcon.getAttribute('SrcBack');
        myIcon.setAttribute( 'SrcBack' , SrcBack );

        // 切換節點前面的+ 或者- 樣式的圖標
        SrcBack = myExpend.src ;
        myExpend.src = myExpend.getAttribute('SrcBack');
        myExpend.setAttribute( 'SrcBack' , SrcBack );
        
        // 顯示或隱藏包含子節點的表格對象
        if( myTable.style.display != 'none' )
        {
            myTable.style.display='none';
        }
        else
        {
            myTable.style.display='';
        }
    }

    var dyload = false;
    if( myTable == null )
    {
        // 若不存在包含子節點的表格對象則嘗試動態加載子節點
        // 此時節點的XMLSource擴展屬性就保存著定義子節點的XML文檔URL地址。
        var XMLSource = myText.getAttribute('XMLSource');
        if( XMLSource != null && XMLSource.length > 0 )
        {
            // 若設置了該XML文檔地址則刪除XMLSource 擴展屬性並
            myText.removeAttribute('XMLSource');
            var xml = document.getElementById( 'SkyTreeVIEwControlTempXML');
            if( XML != null )
            {
                // 設置“正在加載”字樣為顯示狀態
                SkyTreeVIEwControlDyanmicRootNodeID = strID ;
                var lbl = document.getElementById( SkyTreeVIEwControlDyanmicRootNodeID +'_Loading');
                if( lbl != null )
                {
                    lbl.style.display = '';
                }
                // 調用編號為SkyTreeVIEwControlTempXML 的XML數據島來異步加載XML文檔
                xml.src = XMLSource ;
                dyload = true ;
            }
        }
    }
    if( dyload == false )
    {
        //myText.scrollIntoVIEw( false );
    }

}//function SkyTreeVIEwContrlExpendNodeByID(strID)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved