0%

【C#】TreeView 的 CheckBox打勾後自動POST BACK

ASP.NET中的TreeView有ontreenodecheckchanged的事件,但當你在TreeView上打勾時,卻不會觸發Post Back的效果

[![](http://2.bp.blogspot.com/-hIBTtd4zrrQ/UNu4XQV-SvI/AAAAAAAAAd4/wxCJqnyVB8Q/s1600/111.png)](http://2.bp.blogspot.com/-hIBTtd4zrrQ/UNu4XQV-SvI/AAAAAAAAAd4/wxCJqnyVB8Q/s1600/111.png)
查了一下,原來.Net會記住你目前TreeView的狀態,當有任何東西造成Post Back的時候(例如按按鈕),就會觸發ontreenodecheckchanged的事件

所以如果想要CheckBox點擊時能即時的Post Back就要做一些小加工

  1. 先加一個按鈕,並請隱藏起來

    這裡需要特別注意不能直接用Visible=”false“將按鈕隱藏,否則ASP不會將這個按鈕真的Render出來。所以請用CSS的方式隱藏吧!!
  2. 透過JavaScript的方式(這邊利用JQuery撰寫),偵測當CheckBox被點擊時去觸發我們隱藏起來的Button,透過這個Button達到Post Back的效果

這樣就會進到ontreenodecheckchanged的事件

[![](http://2.bp.blogspot.com/-qkdq-K0tGW0/UNu0IfXO4qI/AAAAAAAAAdk/Gt2D8z_Ijyw/s1600/111.png)](http://2.bp.blogspot.com/-qkdq-K0tGW0/UNu0IfXO4qI/AAAAAAAAAdk/Gt2D8z_Ijyw/s1600/111.png)