透過javascript/jQuery來實作單選的TreeView(asp.net treeview)

摘要:透過javascript/jQuery來實作單選的TreeView(asp.net treeview)

 

本篇文章的TreeView是將TreeNode的ShowCheckBox設為true,原因是該TreeView同時會做單選及複選使用


要完成單選的TreeView主要有幾個要點:

1.將點選的節點記錄下來(例如將value記錄在隱藏欄位)

2.在每個節點(treenode)註冊javascript方法,當觸發click事件時將原來選擇的節點狀態清除

我們先看後端程式:重點是將TreeNode的ID包在span內,這麼做的目的是若直接指定TreeNode的value,在產生為html tag時value會被加料所以改取span的ID

後端程式

接下來是前端程式:

 

前端程式);
05
06
07     //MultipleChoice是英文單選的意思
08     function MultipleChoice(id, name) {
09         if ($('#h_id').val() != '' && $('#h_id').val() != id)
10             $('#' + $('#h_id').val()).attr("checked", false);  
11         
12         SingleAndReturn(id, name);
13     }

14
15     function SetTreeNodeCheckEvent() {
16         $(".TreeView tr").each(function() {
17             if ($("span", this).get().length > 0) {
18                 var id = $("span", this).get()[0].id;
19                 var name = $("span", this).text();
20                 id = id.replace('sp_', '');
21                 $("input:checkbox", this).each(function() {                    
22                     $(this).get()[0].id = id;
23                     $(this).click(function() { MultipleChoice(id, name); });                    
24                 }
);
25             }

26         }
);
27     }

28
29     //點選TreeNode並移至TreeNode位置
30     function LoadEvent() {
31         try {
32             var elem = document.getElementById('TreeViewItems_SelectedNode');
33             if (elem != null) {
34                 var node = document.getElementById(elem.value);
35                 if (node != null) {
36                     node.scrollIntoView(true);
37                 }

38             }

39         }

40         catch (oException)
41         { }
42     }
  // -->