寫完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子過程,剩下的事情大家可以自己完成了。