首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 高效能開發實戰:樹狀列表客戶端互動腳本——展開/摺疊與高亮邏輯(中)

     編輯:關於C語言

核心互動函數:SkyTreeViewControlExpendNodeByID

控件輸出的第三段 HTML 代碼塊定義了關鍵的客戶端互動函數 SkyTreeViewControlExpendNodeByID(strID, bolSelect),參數分別為節點 ID 與是否設為當前高亮節點(藍底白字)。

主要邏輯流程

  1. 取得 DOM 元素: 根據 strID 取得展開圖示(_expend)、節點圖示(_icon)、文字元素(_text)、子節點表格(_table)。
  2. 高亮切換: 若 bolSelect=true,將前一高亮節點(SkyTreeViewControlCurrentTreeNode)樣式還原,設定當前節點為高亮樣式 SkyTreeViewControl_SelectedNode。
  3. 展開/摺疊切換: 若子節點表格存在,交換圖示的 src 與自訂屬性 SrcBack 實現圖示切換,並切換表格 display 樣式顯示/隱藏。
  4. 動態載入觸發: 若子節點表格不存在但節點擁有 XMLSource 屬性,啟動動態載入流程:
    • 取得暫存 XML 資料島 SkyTreeViewControlTempXML。
    • 設定全域變數 SkyTreeViewControlDynamicRootNodeID 記錄當前載入節點。
    • 設定 XML 資料島 src 為 XMLSource URL,IE 即開始非同步載入 XML,並觸發 onreadystatechange 事件進入下一階段處理。

程式碼關鍵片段

var xml = document.getElementById('SkyTreeViewControlTempXML');
xml.src = XMLSource; // 觸發非同步載入
dyload = true;

此設計實現了「按需載入」:只有使用者展開特定節點時,才向伺服器請求該節點的子資料,大幅降低首屏載入資料量與渲染壓力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved