javascript 操作treeview

来源:互联网 发布:java酒店管理系统代码 编辑:程序博客网 时间:2024/05/17 04:37

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RoleManage.aspx.cs" Inherits="Admin_RoleManage" %>

<%@ Register Assembly="MagicAjax" Namespace="MagicAjax.UI.Controls" TagPrefix="ajax" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <base target="_self" />
    <title>角色管理</title>

<%--    <script language="javascript" src="../Scripts/ModalDialog.js" type="text/javascript"></script>

    <script language="javascript" src="../Admin/Script/UserInfo.js" type="text/javascript"></script>--%>

    <link href="../Styles/MainStyle.css" rel="stylesheet" type="text/css" />
    <link href="../Styles/MainStyle_OA.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript" language="javascript">
   
function postBackByObject(treeid,checkboxid)
{
    var o = window.event.srcElement;
    if (o.tagName == "INPUT" && o.type == "checkbox") //点击treeview的checkbox是触发
    {
         DoCheck(o,0);
    }
    checkParent(treeid,checkboxid);
}
   
   
function DoCheck( o, panduan)
{
    if(panduan==0)
    {
        var d=o.id;//获得当前checkbox的id;
        var e= d.replace("CheckBox","Nodes");//通过查看脚本信息,获得包含所有子节点div的id
        var div= window.document.getElementById(e);//获得div对象
        if(div!=null) //如果不为空则表示,存在自节点
        {
            var check=div.getElementsByTagName("INPUT");//获得div中所有的已input开始的标记
            for(i=0;i<check.length;i++)
            {
                if(check[i].type=="checkbox") //如果是checkbox
                  {
                     check[i].checked=o.checked;//字节点的状态和父节点的状态相同,即达到全选
                  }

            }

         }
    }
    //点子节点的时候,使父节点的状态改变,即不为全选
   
    var divid=null;
    try
    {
         divid =o.parentElement.parentElement.parentElement.parentElement.parentElement; //子节点所在的div
    }
    catch (ex)
    {
         document.write (ex.description);
    }
    if ( divid == null ||divid.id =="")
    {
         return;
    }
    var id= divid.id.replace("Nodes","CheckBox"); //获得根节点的id
    var checkbox=divid.getElementsByTagName("INPUT"); //获取所有子节点数
    var s=0;
    for(i=0;i<checkbox.length;i++)
    {
        if(checkbox[i].checked) //判断有多少子节点被选中
          {
             s++;
             break;
          }
    }
    if(s>0)
    { // 则开始的根节点的状态仍然为选中状态
      window.document.getElementById(id).checked=true;
    }
   else
    { //否则为没选中状态
        if(id!="")
         window.document.getElementById(id).checked=false;
    }
    if(id!="")
         DoCheck(window.document.getElementById(id),1);
   

}

function checkAll(treeid,checkboxid)

    var check=document.getElementById(treeid).getElementsByTagName("INPUT");//获得div中所有的已input开始的标记
    for(i=0;i<check.length;i++)
     {
        if(check[i].type=="checkbox") //如果是checkbox
            {
                check[i].checked=document.getElementById(checkboxid).checked;//字节点的状态和父节点的状态相同,即达到全选
            }

      }
}


function checkParent(treeid,checkboxid)
{
    document.getElementById(checkboxid).checked=false;
     var check=document.getElementById(treeid).getElementsByTagName("INPUT");//获得div中所有的已input开始的标记
    for(i=0;i<check.length;i++)
    {
        if(check[i].type=="checkbox") //如果是checkbox
        {
             if(check[i].checked==true)
             {
               document.getElementById(checkboxid).checked=true;
               return;
             }
        }

    }
}


    </script>
</head>
<body scroll="no">
    <form id="form1" runat="server">
        <div class="topMainDiv">
            <div class="topMainLeftDiv">
                当前位置:角色管理
            </div>
            <div class="topMainRightDiv">
                <asp:Button ID="cmdSave" runat="server" CssClass="cmdSave" OnClick="cmdSave_Click" />
                &nbsp;&nbsp;<input id="cmdClose" type="button" runat="server" class="cmdClose" onclick="window.close();" />
            </div>
        </div>
        <div class="ConditionDiv">
            <table cellpadding="0" cellspacing="0" width="500px" style="text-align: center;">
                <tr>
                    <td class="CommonleftTD" width="150">
                        角色名称:</td>
                    <td class="CommonrightTD" width="400">
                        <asp:TextBox ID="txtFullName" runat="server" AutoCompleteType="Disabled" CssClass="txtStyle"
                            Width="260px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td class="CommonleftTD" width="150" style="height: 30px">
                        请选择权限列表:
                    </td>
                    <td class="CommonrightTD" width="400" style="height: 30px">
                        &nbsp;
                    </td>
                </tr>
                <tr>
                    <td valign="top">
                        <table cellpadding="0" cellspacing="0" width="500px" style="text-align: center;">
                            <tr>
                                <td align="center" style="font-size: medium; font-weight: bold;">
                                    <asp:CheckBox ID="chkSystem" runat="server" onclick="checkAll('treeSystem','chkSystem');"
                                        BackColor="#C9DBE9" Text="系统管理" /></td>
                                <td align="center" style="font-size: medium; font-weight: bold;">
                                    <asp:CheckBox ID="CheckBox2" runat="server" onclick="checkAll('TreeView1','CheckBox2');"
                                        BackColor="#C9DBE9" Text="系统管理" /></td>
                            </tr>
                            <tr>
                                <td align="center">
                                    <asp:TreeView ID="treeSystem" runat="server" ImageSet="Arrows" ShowCheckBoxes="All"
                                         onclick="postBackByObject('treeSystem','chkSystem') ;">
                                        <ParentNodeStyle Font-Bold="False" />
                                        <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
                                        <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
                                            VerticalPadding="0px" />
                                        <Nodes>
                                            <asp:TreeNode Text="部门管理" Value="XT01" SelectAction="None">
                                                <asp:TreeNode Text="New Node" Value="New Node" SelectAction="None"></asp:TreeNode>
                                                <asp:TreeNode Text="New Node" Value="New Node" SelectAction="None"></asp:TreeNode>
                                            </asp:TreeNode>
                                            <asp:TreeNode Text="角色管理" Value="XT02" SelectAction="None"></asp:TreeNode>
                                            <asp:TreeNode Text="用户管理" Value="XT03" SelectAction="None"></asp:TreeNode>
                                            <asp:TreeNode Text="日志管理" Value="XT04" SelectAction="None"></asp:TreeNode>
                                        </Nodes>
                                        <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="5px"
                                            NodeSpacing="0px" VerticalPadding="0px" />
                                    </asp:TreeView>
                                </td>
                                <td align="center">
                                    <asp:TreeView ID="TreeView1" runat="server" ImageSet="Arrows" ShowCheckBoxes="All"
                                        onclick="postBackByObject('TreeView1','CheckBox2') ;">
                                        <ParentNodeStyle Font-Bold="False" />
                                        <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
                                        <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
                                            VerticalPadding="0px" />
                                        <Nodes>
                                            <asp:TreeNode Text="部门管理" Value="XT01" SelectAction="None">
                                                <asp:TreeNode Text="New Node" Value="New Node" SelectAction="None"></asp:TreeNode>
                                                <asp:TreeNode Text="New Node" Value="New Node" SelectAction="None"></asp:TreeNode>
                                            </asp:TreeNode>
                                            <asp:TreeNode Text="角色管理" Value="XT02" SelectAction="None"></asp:TreeNode>
                                            <asp:TreeNode Text="用户管理" Value="XT03" SelectAction="None"></asp:TreeNode>
                                            <asp:TreeNode Text="日志管理" Value="XT04" SelectAction="None"></asp:TreeNode>
                                        </Nodes>
                                        <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="5px"
                                            NodeSpacing="0px" VerticalPadding="0px" />
                                    </asp:TreeView>
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td class="CommonleftTD" style="height: 30px" width="150" valign="top">
                    </td>
                </tr>
                <tr>
                    <td class="CommonleftTD" style="height: 30px" width="150">
                    </td>
                    <td class="CommonrightTD" style="height: 30px" width="400">
                    </td>
                </tr>
            </table>
            <asp:HiddenField ID="hfID" runat="server" />
        </div>
    </form>
</body>
</html>

 

转自:http://blog.csdn.net/lovenet19820529/archive/2009/08/07/4423305.aspx

原创粉丝点击