遞迴的妙用 遍歷子控制項

2022-07-19 06:21:11 字數 691 閱讀 9333

我們在asp.net程式設計中, 經常需要遍歷乙個web控制項的子控制項 ,找到所需的控制項並獲取控制項中相應的值。以前我都是採用迴圈的方式遍歷子控制項,但當子控制項是複雜的樹形結構,比如:子控制項也有子控制項,子控制項的子控制項也有子控制項。這時如果用迴圈的方式,就要用巢狀迴圈,而有時我們很難確定我們所要找的控制項在子控制項樹的哪一層,昨天我就為些付出了代價,因為乙個控制項在內部增加了panel控制項,並將它的子控制項移到了panel控制項上,我通過迴圈怎麼也找不到所需的控制項。      既然子控制項表現為乙個樹形結構,為什麼我不用遞迴去遍歷子控制項?當我看著不太優雅的巢狀迴圈**時,我突然這樣想到。使用遞迴,根本不用關心所需的控制項在哪一層,而且**簡潔。      下面就是兩種遍歷方式: 1、迴圈方式:

for(

inti =0

; i<

globalcategorypanel.controls.count;i++)

//globalcategorypanel是個panel控制項}}

}}

}2、遞迴方式

private

void

button1_click(

object

sender, system.eventargs e)

private

void

findselecedcontrol(control control)

//遞迴函式

else}}

TreeView控制項的載入,遍歷遞迴的應用

看了許多treeview的使用方法,發現沒有乙個適合初次接觸.net中的treeview的例子,由於以前在vb6中載入treeview的結構樹很簡單,只是乙個add 方法而已,在方法中指定父節點,圖示等。而在net中,一切皆物件,就不能用這種思維去想了,比如 111101 110101 110101...

oracle遞迴遍歷子節點父節點

一 適用情況 適用樹狀結構資料,例如包含id,parent id欄位的資料表 表中資料可以通過某些字段找到其中的父子關係。二 語法 select from 表名 start with 條件1 connnect by 條件2 where 條件31 舉例 1 通過父id查詢所有子節點 select fr...

WPF 從當前層次遍歷查詢 子控制項及父控制項

silverlight遍歷父子控制項的通用方法 想從silverlight中datagrid找元素,真是麻煩,沒有rows物件,無法遍歷。從網上找來這些方法,挺好用的 public class vthelper parent visualtreehelper.getparent parent ret...