日期:2014-05-19  浏览次数:20466 次

如何实现treeview选种父节点的checkbox后其子节点的checkbox全部选种打上钩
我写了个代码但是提示我
集合已修改:可能无法实现枚举操作
代码如下
  protected   void   TreeView1_TreeNodeCheckChanged(object   sender,   TreeNodeEventArgs   e)
        {
               
                if   (TreeView1.CheckedNodes.Count   >   0)
                {
                        foreach   (TreeNode   no   in   TreeView1.CheckedNodes)
                        {
                                if   (no.ChildNodes.Count   >   0)
                                {
                                        foreach   (TreeNode   chino   in   no.ChildNodes)
                                        {
                                                chino.Checked   =   true;
                                        }
                                }
                        }
                }
        }
而且TreeView1_TreeNodeCheckChanged事件也不是在点节点前的checkbox触发的
我想实现点节点前的checkbox   就触发事件   如果该节点有子节点   ,则该节点下所有子节点被选种   怎么弄

------解决方案--------------------
<%@ Page Language= "C# " %>
<script runat= "server ">
protected void Page_Load(object sender, EventArgs e)
{
TreeView1.Attributes.Add( "onclick ", "OnClientTreeNodeChecked(event) ");
}
protected void Button1_Click(object sender, EventArgs e)
{
if (Request.Form[ "CheckedNode "] != null)
{
string CheckedNodeValue = Request.Form[ "CheckedNode "];
if (CheckedNodeValue == " ")
return;

if (CheckedNodeValue.EndsWith( ", "))
CheckedNodeValue = CheckedNodeValue.TrimEnd( ', ');

Response.Write( "您选择的节点有: "+CheckedNodeValue);
}
}
</script>
<html xmlns= "http://www.w3.org/1999/xhtml ">
<head id= "Head1 " runat= "server ">
<title> 客户端实现全选子节点 </title>
<script type= "text/javascript " language= "javascript ">
//识别不同的浏览器
function getTargetElement(evt) {
var elem
if (evt.target)
{
elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target
}
else
{
elem = evt.srcElement
}
retu