一:有一个TreeView,CheckBox可以,要求选中一个节点里(Checked),它下面的节点也变成被选中状态(包括子节点,孙节点....)。
二:当一个节点的子节点或者孙节点....没被选中,则其自身的也变为不选中状态 msdn 上的标准答案修改如下
Sub TreeView_CheckChanged(ByVal sender As Object, ByVal e As TreeNodeEventArgs)
Try
If e.Node.ChildNodes.Count > 0 Then
Me.CheckAllChildNodes(e.Node, e.Node.Checked)
End If
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
End Sub
Sub CheckAllChildNodes(ByVal treeNode As TreeNode, ByVal nodeChecked As Boolean)
Try
Dim node As TreeNode
For Each node In treeNode.ChildNodes
node.Checked = nodeChecked
If node.ChildNodes.Count > 0 Then
Me.CheckAllChildNodes(node, nodeChecked)
End If
Next node
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
End Sub
后台中这样调用
treDrName.Attributes.Add("onclick", "TreeView_CheckChanged")
但是 感觉 没有效果的
请各位高手 支招 啊
要测试了,没有时间研究了,感谢各位。
二:当一个节点的子节点或者孙节点....没被选中,则其自身的也变为不选中状态 msdn 上的标准答案修改如下
Sub TreeView_CheckChanged(ByVal sender As Object, ByVal e As TreeNodeEventArgs)
Try
If e.Node.ChildNodes.Count > 0 Then
Me.CheckAllChildNodes(e.Node, e.Node.Checked)
End If
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
End Sub
Sub CheckAllChildNodes(ByVal treeNode As TreeNode, ByVal nodeChecked As Boolean)
Try
Dim node As TreeNode
For Each node In treeNode.ChildNodes
node.Checked = nodeChecked
If node.ChildNodes.Count > 0 Then
Me.CheckAllChildNodes(node, nodeChecked)
End If
Next node
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
End Sub
后台中这样调用
treDrName.Attributes.Add("onclick", "TreeView_CheckChanged")
但是 感觉 没有效果的
请各位高手 支招 啊
要测试了,没有时间研究了,感谢各位。
解决方案 »
- 我装的是VS2008,我的新建项目--其他项目类型---扩展性-- 应该有个加载项模板,我的没有?
- javascript 可以实现登录按钮的功能吗?
- 递归读取数据库生成TreeView 当子Checked=true时 父展开
- 请问调试Page_UnLoad中的代码,如何触发这个事件?
- excel操作的问题
- 求教dropdownlist等控件的数据绑定方法?
- 如何动态设置其form默认提交button?
- 请问一个关于数据库恢复的问题:
- icyer() ,救命!你有aspnetmenu控件吗?发给我一个好吗!在线等待
- 怎么解决刷新页面弹出点击确定重发消息刷新页面.??
- 谁帮我看看这是什么问题啊??数据库的
- ASP.NET如何分类读取显示SQL表里的内容
function UncheckParent (obj)
{
while(obj != null)
{
var tagName = obj.tagName.toLowerCase();
if(tagName == "div" && obj.id == "TreeView1")
{
return;
}
if( tagName== "table")
{
var checkBox = obj.getElementsByTagName("INPUT");
if(checkBox.length >0)
{
checkBox[0].checked = false;
}
obj = obj.parentElement.previousSibling;
}else
obj = obj.parentElement;
}
}
function client_OnTreeNodeChecked()
{
var obj = window.event.srcElement;
var treeNodeFound = false;
var checkedState;
if (obj.tagName == "INPUT" && obj.type == "checkbox")
{
var treeNode = obj;
checkedState = treeNode.checked;
if(!checkedState)
{
UncheckParent(obj);
}
do
{
obj = obj.parentElement;
}
while (obj.tagName != "TABLE")
var parentTreeLevel = obj.rows[0].cells.length;
var parentTreeNode = obj.rows[0].cells[0];
var tables = obj.parentElement.getElementsByTagName("TABLE");
var numTables = tables.length
if (numTables >= 1)
{
for (i=0; i < numTables; i++)
{
if (tables[i] == obj)
{
treeNodeFound = true;
i++;
if (i == numTables)
{
return;
}
}
if (treeNodeFound == true)
{
var childTreeLevel = tables[i].rows[0].cells.length;
if (childTreeLevel > parentTreeLevel)
{
var cell = tables[i].rows[0].cells[childTreeLevel - 1];
var inputs = cell.getElementsByTagName("INPUT");
inputs[0].checked = checkedState;
}
else
{
return;
}
}
}
}
}
}
</script>
<asp:TreeView ID="TreeView1" onclick="javascript:client_OnTreeNodeChecked();"