摘要:透過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
} // -->