自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#調(diào)用WalkTree()方法

開(kāi)發(fā) 后端
這里介紹C#調(diào)用WalkTree()方法,XmlMenus集合的代碼開(kāi)始時(shí)要聲明一個(gè)XmlHierMenu 名稱(chēng)空間,接下來(lái)要引用 System、 System.Xml、 System.Collections和System.IO 名稱(chēng)空間

本文向大家介紹C#調(diào)用WalkTree()方法,可能好多人還不知道C#調(diào)用WalkTree()方法,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

菜單應(yīng)用程序使用了3個(gè) XML 文檔:menuItems.xml、menuItems2.xml 和menuItems3.xml,它們用于標(biāo)記單獨(dú)的菜單項(xiàng)目。XML的處理和操作由一個(gè)叫做xmlMenus.dll的集合完成,這個(gè)集合被服務(wù)器端的一個(gè)ASP.NET 文件createMenus.aspx所使用。在客戶端的動(dòng)態(tài)HTML (DHTML)內(nèi)容使用了一個(gè)層疊格式表文件和一個(gè)JavaScript文件,這些文件聯(lián)合在一起生成了本文開(kāi)始部分的圖示結(jié)果。

我們?cè)贚ist 1的代碼顯示了用來(lái)標(biāo)記單獨(dú)菜單項(xiàng)目的XML文檔的一部分。文檔中的主元素命名為menuItem,它可以包含一個(gè)名字和超級(jí)鏈接元素以及額外的menuItem 子元素。這種關(guān)系可以用來(lái)創(chuàng)建包含子菜單的菜單系統(tǒng),就象Windows的開(kāi)始菜單一樣。
由于 XML已經(jīng)標(biāo)出了分層關(guān)系,因此就可以利用循環(huán)在不同元素之間行走:當(dāng)使用XmlDocument、XmlNode和XmlNodeList類(lèi)創(chuàng)建子節(jié)點(diǎn)時(shí),我們可以反復(fù)調(diào)用WalkTree() 函數(shù)以顛倒父/子關(guān)系。其它的類(lèi)如 ArrayList和 StreamWriter用于將相關(guān)菜單歸類(lèi)到數(shù)組中,然后在適當(dāng)時(shí)間將所生成的菜單結(jié)構(gòu)寫(xiě)入一個(gè)文件中。

XmlMenus集合的代碼開(kāi)始時(shí)要聲明一個(gè)XmlHierMenu 名稱(chēng)空間,接下來(lái)要引用 System、 System.Xml、 System.Collections和System.IO 名稱(chēng)空間:

  1. using System;  
  2. using System.Xml;  
  3. using System.Collections;  
  4. using System.IO;  

在這部分代碼之后要?jiǎng)?chuàng)建3個(gè)構(gòu)造器。一個(gè)構(gòu)造器不接收變量,只對(duì)變量進(jìn)行初始化。下一個(gè)構(gòu)造器接收一個(gè)圖象文件的定制路徑。最后一個(gè)構(gòu)造器在不經(jīng)常對(duì)XML菜單進(jìn)行刷新的情況下,允許將由集合生成的輸出存儲(chǔ)到一個(gè)文件中。最后一個(gè)構(gòu)造器所生成的文件可以被靜態(tài)地包含在一個(gè) ASP.NET文件中,而不是在各個(gè)Web頁(yè)面請(qǐng)求時(shí)隨時(shí)地生成。

這個(gè)方法負(fù)責(zé)進(jìn)行XML文檔的裝載和解析,找到根節(jié)點(diǎn),然后在根的子節(jié)點(diǎn)之間循環(huán)。如果發(fā)現(xiàn)一個(gè)子節(jié)點(diǎn)本身還有子節(jié)點(diǎn),就C#調(diào)用WalkTree()方法,并且把這些子節(jié)點(diǎn)都傳遞到其中。如果這些子節(jié)點(diǎn)還有子節(jié)點(diǎn),就再次C#調(diào)用WalkTree()方法。這個(gè)過(guò)程循環(huán)進(jìn)行直到不再發(fā)現(xiàn)增加的子節(jié)點(diǎn)。Walktree()方法的代碼可以參看List 3。
在C#調(diào)用WalkTree()方法并且對(duì)不同的節(jié)點(diǎn)進(jìn)行分析的同時(shí),要解析 menuItem節(jié)點(diǎn),將來(lái)自其超級(jí)鏈接和名字節(jié)點(diǎn)的數(shù)據(jù)放在數(shù)組列表中。對(duì)整個(gè) XML文檔都進(jìn)行解析之后,數(shù)組列表的內(nèi)容就被傳遞回調(diào)用的ASP.NET的頁(yè)面,然后使用Response對(duì)象寫(xiě)出信息。從這時(shí)起,客戶端的 JavaScript代碼就開(kāi)始控制DHTML 菜單了。

在服務(wù)器端,我們使用一個(gè) ASP.NET頁(yè)面來(lái)開(kāi)始菜單的創(chuàng)建過(guò)程。這個(gè)頁(yè)面輸入了與集合相關(guān)聯(lián)的名稱(chēng)空間XmlHierMenu:

  1. <%@ page language="C#" %> 
  2. <%@ Import Namespace="XmlHierMenu" %>  

然后,將樣式表文件和 JavaScript文件包含在文件的 代碼區(qū)中。最后,在 ASP.NET 頁(yè)面底部的代碼用來(lái)引用上面提到的CreateMenu() 方法與WalkTree()方法。

在ASP.NET 頁(yè)面中所找到的C# 代碼只是建立了到不同的XML文檔的路徑,并且對(duì) XmlMenu 類(lèi)進(jìn)行了例示。一旦對(duì)這個(gè)類(lèi)進(jìn)行了例示,就對(duì) CreateMenu()方法進(jìn)行調(diào)用。這個(gè)方法接收菜單名以及到這個(gè)菜單的XML文檔的文件路徑。在本例中,要?jiǎng)?chuàng)建3個(gè)名為menu1、 menu2和 menu3 的菜單,然后在一個(gè)ASP.NET頁(yè)面中使用。這個(gè)應(yīng)用程序在一個(gè)給定頁(yè)面中可以支持無(wú)窮多的菜單,但是我們建議菜單數(shù)目不要過(guò)多,因?yàn)槊吭黾右粋€(gè)菜單,發(fā)送到客戶端的文件規(guī)模都會(huì)增加。

【編輯推薦】

  1. C#窗體里調(diào)用淺談
  2. C#調(diào)用ListEmployee命令
  3. C# CreateEmployeeDefinition()函數(shù)
  4. C#實(shí)現(xiàn)斷點(diǎn)續(xù)傳詳細(xì)剖析
  5. C# Employee對(duì)象淺談
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-08-31 16:33:28

C#調(diào)用Dispose

2009-09-01 11:04:59

C#調(diào)用擴(kuò)展方法

2009-08-03 12:57:27

C#調(diào)用DLL

2009-09-11 10:59:06

Effective C調(diào)用Dispose()

2009-08-05 09:30:39

C#調(diào)用DLL函數(shù)

2009-08-26 16:58:12

調(diào)用C# Thread

2009-09-02 10:49:46

C#調(diào)用析構(gòu)方法

2009-08-05 09:40:02

C#調(diào)用DLL函數(shù)

2011-04-08 09:52:44

C++C#DLL

2009-08-11 11:07:49

Java調(diào)用C# we

2024-05-16 12:33:37

C#編程指針

2009-08-17 16:18:47

C#調(diào)用CreateO

2009-09-18 19:09:41

C# COM組件

2009-08-05 16:29:18

C#調(diào)用C++動(dòng)態(tài)鏈接

2009-08-31 10:39:15

C#調(diào)用ListEmp

2009-08-04 09:30:33

C#調(diào)用ImageAn

2025-03-04 04:00:00

C++代碼windows

2009-08-18 15:49:19

C# 操作Excel

2009-08-05 14:54:09

VB調(diào)用C#類(lèi)庫(kù)

2009-04-03 13:20:05

C#擴(kuò)展方法調(diào)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)