.net 中treeview中的checkbox 实现单选功能。
并在后台服务器端取值。
<script type="text/javascript">
function OnTreeNodeChecked()
{
var element = window.event.srcElement;
if (element.checked)
{
tv=document.getElementById("TreeView1");
es=tv.getElementsByTagName("input");
for(var i=0;i<es.length;i++)
{
if(es[i].id!=element.id)
{
es[i].checked=false;
}
}
}
}
</script>
原理很简单, 如果触发事件的checkbox为选中状态时, 取得treeview中的所有inptu元素,判断,当他的类型为checkbox时,把它的checked设为false;
html代码:<asp:TreeView ID="TreeView1" runat="server" ExpandDepth="2" ShowLines="True"
OnClick="OnTreeNodeChecked()" ShowCheckBoxes="All">
</asp:TreeView>
后台取值的时候:
TreeNodeCollection tnc = this.TreeView1.CheckedNodes;
s = 0;
aa = "";
foreach (TreeNode node in tnc)
{
if (node.Checked)
{
aa = node.Value;
s = node.Depth;
break;
}
}
取得它的当前深度和绑定的value值。