把一个treeview的checkboxs属性设为true使其节点都变成checkbox之后,想实现使某一个节点选中后其子节点都自动默认选中该怎么做呢?大家帮忙,谢谢拉!!
解决方案 »
- 求时间段,现在我有两个时间,比如2012-8-11,2011-8-13,两个时间,怎样得知他们的距离还与多长!
- 非泛型接口中的泛型方法如何实现
- 如何按照输入值倒序减法??
- dataset
- 急(在线等)怎样打印出ASCII表,从0到127全部(非显示的也要)
- c# 怎么把dataGridView的数据 用Excel导出!
- socket数据流加标头的问题
- 刚学编程2月,想编个计算器,迷糊写了点代码有人能帮我看看代码吗?现在对编程还迷迷糊糊的
- (web)C# + ArcGIS + Oracle数据库 搭配方案中,可能出瓶颈的地方在哪里?谢谢~!
- new的用法
- 关于DataReader连接,高手请进
- gridview 导出成Excel 中文问题
{
foreach (System.Windows.Forms.TreeNode node in e.Node.Nodes)
{
node.Checked = e.Node.Checked;
}
}
{
foreach (System.Windows.Forms.TreeNode node in e.Node.Nodes)
{
node.Checked = true;
}
}
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;
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>
.cs代码
TreeView1.Attributes.Add("onclick", "return client_OnTreeNodeChecked();");
System.Windows.Forms.TreeViewEventArgs e)
{
//遍历选种节点的集合
foreach (TreeNode node in e.Node.Nodes)
{
//选种状态取非
node.Checked = !node.Checked;
}
}
//规则1.1:检查是否有子节点,需清除所有子节点的选定状态;
//规则1.2:检查是否有父节点,如有,则根据兄弟节点的选定状态修改父节点的选定状态
//规则2:选定
//规则2.1:检查是否有子节点,设置所有子节点为选定状态
//规则2.2:检查是否有父节点,如有,则根据兄弟节点的选定状态修改父节点的选定状态可参看
http://blog.csdn.net/am2004/archive/2007/05/22/1621349.aspx