Asp.net 2.0 中的TreeView的右键菜单

来源:互联网 发布:cnzz 阿里云备案 编辑:程序博客网 时间:2024/04/19 19:29
 <%@ PageLanguage="C#" %>

<html>
<
head>
    <style>
    <!--
        .skin1 {
            
cursor:default;
            
font:menutext;
            
position:absolute;
            
text-align:left;
            
font-family:Arial, Helvetica,sans-serif;
            
font-size:10pt;
            
width:120px;
            
background-color:menu;
            
border:1solid buttonface;
            
visibility:hidden;
            
border:2outset buttonhighlight;
        }
        
.menuitems {
            
padding-left:15px;
            
padding-right:10px;
    }
    
-->
    </style>

    <scripttype="text/javascript">

<!-- Begin
var menuskin = "skin1";
var display_url = 1;// Show URLs in status bar?
function showmenuie5() {
    
if (event.srcElement.type != undefined)
    {
            
var s  =event.srcElement.id;
            
var ind = s.replace("TreeView1t","");
            s = s.replace(
"TreeView1t","TreeView1n");

            document.getElementById(
'one').url =event.srcElement.href;
            document.getElementById(
'one').innerText ="Select";
            
var ch = document.getElementById(s);
            
if (ch !=null){
                document.getElementById(
'two').url ="javascript:TreeView_ToggleNode(TreeView1_Data," + ind +"," + s + ",' '," + s + "Nodes)";    
                document.getElementById(
'two').innerText ="Expand\\Collapse";
            }
            
else        
                document.getElementById(
'two').outerHTML="<div id=two class=menuitems url=''></div>"


            var rightedge = document.body.clientWidth-event.clientX;
            
var bottomedge = document.body.clientHeight-event.clientY;
            
if (rightedge < ie5menu.offsetWidth)
                ie5menu.style.left = document.body.scrollLeft +
event.clientX - ie5menu.offsetWidth;
            
else
                ie5menu.style.left = document.body.scrollLeft +event.clientX;
            
if (bottomedge < ie5menu.offsetHeight)
                ie5menu.style.top = document.body.scrollTop +
event.clientY - ie5menu.offsetHeight;
            
else
                ie5menu.style.top = document.body.scrollTop +event.clientY;
                ie5menu.style.visibility =
"visible";
                }
                
else
                {
                   ie5menu.style.visibility =
"hidden";
                }
            
returnfalse;
    }
    
function hidemenuie5() {
        ie5menu.style.visibility =
"hidden";
    }
    
function highlightie5() {
        
if (event.srcElement.className =="menuitems") {
            
event.srcElement.style.backgroundColor ="highlight";
            
event.srcElement.style.color ="white";
        
if (display_url)
            window.status =
event.srcElement.url;
        }
    }
    
function lowlightie5() {
        
if (event.srcElement.className =="menuitems") {
            
event.srcElement.style.backgroundColor ="";
            
event.srcElement.style.color ="black";
            window.status =
"";
        }
    }
    
function jumptoie5() {
        
if (event.srcElement.className =="menuitems") {
            
if (event.srcElement.getAttribute("target") !=null)
                window.open(
event.srcElement.url,event.srcElement.getAttribute("target"));
            
else
                window.location = event.srcElement.url;
        }
    }
//  End -->
    </script>

</
head>
<
body>
    <formid="form1"runat="server">
        <divid="ie5menu"class="skin0"onmouseover="highlightie5()"onmouseout="lowlightie5()"
            onclick="jumptoie5();">
            <divid="one"class="menuitems"url="">
            </div>
            <divid="two"class="menuitems"url="">
            </div>
        </div>
        <asp:TreeViewID="TreeView1"runat="server">
            <Nodes>
                <asp:TreeNodeText="a"Value="a">
                    <asp:TreeNodeText="b"Value="b">
                        <asp:TreeNodeText="c"Value="c"></asp:TreeNode>
                    </asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNodeText="cc"Value="cc">
                    <asp:TreeNodeText="ccc"Value="ccc">
                        <asp:TreeNodeText="cccc"Value="cccc"></asp:TreeNode>
                    </asp:TreeNode>
                </asp:TreeNode>
            </Nodes>
            <SelectedNodeStyleBackColor="#C00000"/>
        </asp:TreeView>
    </form>

    <scripttype="text/javascript">
      if
(document.all) {
          ie5menu.className = menuskin;
          document.getElementById(
'TreeView1').oncontextmenu = showmenuie5;
          document.body.onclick = hidemenuie5;
      }
    
</script>
</
body>
</
html>