c treeView 取消選擇事件

2021-09-08 09:30:37 字數 1006 閱讀 8270

需求:選擇樹的節點時,會觸發某些事件。但是部分節點的處理比較特殊,不能選擇。另外,前台選擇的節點盡量不要跳來跳去。

幾個知識點:

treeview.beforeselect事件,可以取消選擇。

treeviewcanceleventargs e,e包含有屬性action、node、cancel。可以根據action來判斷beforeselect事件是由什麼操作觸發的。同樣,node獲取當前的節點,通過node的屬性值也可以判斷是否繼續往下執行。屬性cancel為true時,不會繼續往下執行。(注:至少不會出發afterselect事件)

e.action,是乙個列舉。有五個值:collapse、expand、unknown、bykeyboard、bymouse。稍微理解一下,可以知道collapse是摺疊節點時的狀態,expand對應展開節點操作,bykeyboard對應鍵盤選擇操作,bymouse對應滑鼠選擇操作,至於unknown,不全是但包含treeview.selectednode = tn;對treeview的selectednode屬性賦值時的狀態。

應用例項:當節點展開、摺疊,以及節點為第一級的節點(也就是沒有父節點)的情況下,取消選擇事件;而對selectednode賦值的情況,不取消事件,但是也不執行beforeselect事件中的其他**。

**如下:

//

切換節點

void treeall_beforeselect(object

sender, treeviewcanceleventargs e)

//未知操作執行選擇,但不執行下面的act

if (e.action ==treeviewaction.unknown)

return

; action act = () =>;

if (true

) act();

}

取消事件冒泡

阻止事件冒泡 1.e.stoppropagation 方法 ie瀏覽器不可以 2.cancelbbubble true 屬性 ie瀏覽器 如下 function stopbubble e else 阻止冒泡和阻止預設事件 1.event.stoppropagation 方法 阻止事件的冒泡方法,但是...

取消冒泡事件

這也時從別人那copy來的。只不過是 自己打了一次。原文 在預設情況下,發生在乙個子元素上的單擊事件 或者其他事件 如果在其父級元素繫結了乙個同樣的事件,此時點選子元素,click事件會首先被子元素捕獲,執行繫結的事件程式,之後會被父級元素捕獲,再次激發一段指令碼的執行,這就是所謂的 事件冒泡 ob...

事件取消和阻止

取消冒泡 w3c標準 event.stoppropagation 但不支援ie9以下版本 ie獨有event.cancelbubble true 封裝 stopbubble event function stopbulle event else 阻止預設事件 預設事件 表單提交,a標籤跳轉,右鍵選單...