日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

動(dòng)態(tài)建立TreeView節(jié)點(diǎn)

 悟靜 2012-02-16

  動(dòng)態(tài)建立TreeView節(jié)點(diǎn)

TreeView經(jīng)常用來表現(xiàn)復(fù)雜的層級(jí)式數(shù)據(jù)結(jié)構(gòu),因此不同于靜態(tài)菜單。我們通常是通過程序動(dòng)態(tài)將數(shù)據(jù)傳輸給TreeView以建立其節(jié)點(diǎn)的,并且通過取得節(jié)點(diǎn)的關(guān)聯(lián)值,執(zhí)行某些特定的動(dòng)作。建立節(jié)點(diǎn)的語法必須根據(jù)節(jié)點(diǎn)標(biāo)簽進(jìn)行引用,假設(shè)你在網(wǎng)頁上建立了一個(gè)TreeView控件,并且將其命名為TreeView1,在其中加入單一節(jié)點(diǎn)的程序代碼如下:

TreeNode nodeVBNet = new TreeNode("Visual Basic.NET");  
tvFB.Nodes.Add(nodeVBNet);
你還可以利用另外一個(gè)版本的方法,將其加入到指定的位置中,而所要加入的位置是由以0為起始值的索引值指定的,如下式。這段程序代碼將一個(gè)名稱為"Visual C# 2005"的節(jié)點(diǎn)如入到群組里面的第2個(gè)節(jié)點(diǎn)的位置。
TreeNode nodecs = new TreeNode("Visual C# 2005");  
tvFB.Nodes.AddAt(1, nodecs);
如果你想要進(jìn)一步將指定的節(jié)點(diǎn)加到某個(gè)節(jié)點(diǎn)成為其下的子節(jié)點(diǎn),例如,為上述的"Visual Basic.NET"加入一個(gè)"My對(duì)象"子節(jié)點(diǎn),所需的程序代碼如下:
TreeNode nodeMy = new TreeNode("My 對(duì)象探索"); 
nodeVBNet.ChildNodes.Add(nodeMy);

nodeVBNet是上面建立的節(jié)點(diǎn),我們要將nodeMy加入到其子節(jié)點(diǎn)的位置,可以引用ChildNodes集合的Add方法實(shí)現(xiàn)。為了了解如何通過程序代碼建立TreeView節(jié)點(diǎn),現(xiàn)在我們通過示例進(jìn)行說明。

示例FBTreeView

先來看看這個(gè)示例所呈現(xiàn)的結(jié)果,在瀏覽器中載入網(wǎng)頁,如下圖所示,隨意選擇任何一個(gè)節(jié)點(diǎn),網(wǎng)頁的TreeView上便出現(xiàn)所選擇的節(jié)點(diǎn)名稱。

 
建立一個(gè)新網(wǎng)站,拖曳一個(gè)TreeView控件到Default網(wǎng)頁中,切換到程序代碼文件,輸入以下的內(nèi)容:

public partial class _Default : System.Web.UI.Page 
{
protected void Page_Load(object sender, EventArgs e)
{
TreeNode nodeVBNet = new TreeNode("Visual Basic.NET");
TreeNode nodeMy = new TreeNode("My對(duì)象");
TreeNode nodeVBs = new TreeNode("VB6升級(jí)");
        TreeNode nodecs = new TreeNode("C#");
TreeNode nodel = new TreeNode("基礎(chǔ)語法");
TreeNode nodeoop = new TreeNode("OOP設(shè)計(jì)");
TreeNode nodeThread = new TreeNode("多線程"); 
        TreeNode nodeNET = new TreeNode("NET");
TreeNode nodeNET2 = new TreeNode("NET 2.0");
TreeNode nodeNET3 = new TreeNode("NET 3.0");
TreeNode nodeCLR = new TreeNode("CLR");
        TreeNode nodeASPNET = new TreeNode("ASP.NET");
TreeNode nodeControl = new TreeNode("控件");
TreeNode nodeDataBind = new TreeNode("數(shù)據(jù)綁定");
TreeNode nodeP = new TreeNode("個(gè)性化網(wǎng)頁");
        TreeNode nodeADONET = new TreeNode("ADO.NET");
TreeNode nodeCONN = new TreeNode("聯(lián)機(jī)設(shè)置");
TreeNode nodeDataSource = new TreeNode("DataSource");
        if (!IsPostBack)
{
tvFB.Nodes.Add(nodeNET);
tvFB.Nodes.Add(nodeVBNet);
tvFB.Nodes.Add(nodecs);           
tvFB.Nodes.Add(nodeASPNET);
tvFB.Nodes.Add(nodeADONET);
            //VB.NET
nodeVBNet.ChildNodes.Add(nodeMy);
nodeVBNet.ChildNodes.Add(nodeVBs);
            //C#
nodecs.ChildNodes.Add(nodel);
nodecs.ChildNodes.Add(nodeoop);
nodecs.ChildNodes.Add(nodeThread);
            //NET
nodeNET.ChildNodes.Add(nodeNET2);
nodeNET.ChildNodes.Add(nodeNET3);
nodeNET.ChildNodes.Add(nodeCLR);
            //ASP.NET
nodeASPNET.ChildNodes.Add(nodeControl);
nodeASPNET.ChildNodes.Add(nodeDataBind);
nodeASPNET.ChildNodes.Add(nodeP);
            //ADO.NET
nodeADONET.ChildNodes.Add(nodeCONN);
nodeADONET.ChildNodes.Add(nodeDataSource);       

}
}
}

這段程序代碼建立了5個(gè)根節(jié)點(diǎn),然后通過ChildNodes一一為其加入子節(jié)點(diǎn)。讀者可以自行與上述通過標(biāo)簽形式加入節(jié)點(diǎn)的網(wǎng)頁內(nèi)容進(jìn)行比對(duì)。

除了建立節(jié)點(diǎn),另外一個(gè)使用TreeView控件必須了解的技巧是取得用戶所選擇的節(jié)點(diǎn)。用戶選擇節(jié)點(diǎn),觸發(fā)SelectedNodeChanged事件來執(zhí)行某些特定的程序功能,開發(fā)人員則在此事件處理程序里,編寫相關(guān)的程序代碼。將一個(gè)標(biāo)簽拖曳到網(wǎng)頁上,并且雙擊Selected- NodeChanged事件產(chǎn)生事件,處理程序的相關(guān)程序代碼,如下圖所示。

 
現(xiàn)在在事件處理程序里面,填入下面的程序代碼,當(dāng)用戶單擊某一個(gè)節(jié)點(diǎn)的時(shí)候,這段程序代碼被觸發(fā),取得節(jié)點(diǎn)的值,并將其顯示在網(wǎng)頁上配置的標(biāo)簽控件中。

protected void tvFB_SelectedNodeChanged(object sender, EventArgs e)

lblClick.Text = tvFB.SelectedValue;
}
從這個(gè)示例中,我們看到了如何用后置程序代碼動(dòng)態(tài)建立所需的TreeView節(jié)點(diǎn)。當(dāng)這些節(jié)點(diǎn)必須從數(shù)據(jù)庫等外部數(shù)據(jù)源取得時(shí),這種技巧非常有用,可以讓我們擺脫靜態(tài)數(shù)據(jù)的限制,建立更彈性的TreeView架構(gòu)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多