天天看點

.net 的TreeView控件

寫完treeview控件後,有網友在小站留言本提出能否告之如何編寫在選中某一treenode控件時運作指定的代碼,今天抽時間寫完了這個教程。

  編寫當在treeview控件中選中某個treenode控件時觸發運作的代碼

  當在你的asp.net頁面中添加一個treeview控件的時候,你可能想要編寫一些代碼,當在這個treeview控件中選中了一個節點項時,觸發運作這段代碼。treeview控件提供了一種事件,你可以為之編寫相應的事件處理代碼。這個事件為你提供了對被選中的節點,以及在選中此節點之前通路者所在的節點進行相關處理的可能。

  這個asp.net頁面将通過一個treeview控件以層次結構顯示一個部門的清單。當通路者選中一個節點時,他将看到所選中節點的ID,以及在選中此節點之前他所在的節點的ID,這些資訊是通過一個label控件的text屬性來回顯給通路者的。

<iecontrols:treeview

   id="tvbasic"

   onseletedindexchanged="node_selected"

   autopostback="true"

runat="server"

>

  請注意,其中的autopostback屬性設定為true。這意味着當有一個treenode控件被選中時,本頁面将被送出到伺服器進行處理。當一個節點的選中狀态發生改變時所觸發運作的過程通過onselectedindexchange屬性來指定。

  在空上treeview控件,以像下面這樣的方式定義了一引起treenodw控件:

<iecontrols:treenode text="設計站點"/>

  當這個treeview控件中的節點選中狀态發生改變時,将觸發運作下列過程:

sub node_selected(s as object, e as treeviewselecteventargs)

    lblmessage.text="你選擇了:"&e.newnode.tostring()

end sub

  編寫當展開一個treenode時所觸發運作的代碼

  當通路者展開一個treeview控件中的一個節點時,你可以需要運作一些代碼。例如,你可能會在treeview控件中所使用的控件内定義頁面。是以,當展開treeview中的一個treenode控件時,整個treeview控件的大小将會發生改變。在這種情況下,當發生節點展開的事件時,你将需要運作一段代碼來重新調整而面中其餘部分的尺寸。

  示例:

  當通路者選中了一個具有子控件的treenode控件時,這個控件将會展開。在這個頁面中,每當展開一個treenode節點時,通路者都将會看到一條消息。

<iecontrols:treeview

  id="tvbaxic"

  onexpand="Node_expand"

  autopostback="true"

  runat="server"

>

  請注意onexpand屬性的使用。當有一個節點展開時,将會觸發運作這個屬性設定的那個過程。此外,由于qutopostback屬性設為true,因而當有一個節點展開時,将會立即觸發這一事件。

編寫當treenode控件折疊時觸發運作的代碼

  如果通路者在treeview控件中選中了某個節點而使其處于展開狀态的話,你可以通過再次選以這個節點而将其折疊。當一個treenode控件折疊時,如果你想觸發運作一段代碼,則可以使用相應treeview控件的oncollapse事件來實作如:

<iecontrols:treeview

  id="tvbaxic"

  oncollapse="Node_collapse"

  autopostback="true"

  runat="server"

>

  注意oncollapse屬性的使用,當treenode折疊時,運作node_collpase子過程,剩下的事情大家可以自己完成了。