原文网址:http://blogs.msdn.com/b/jdixon/archive/2006/01/05/ 509700.aspx
A few ASP.NET 2.0 TreeView coders were asking for a how to have context menus - per node - on the TreeView control. Well I spent a small amount of time on this and wanted to post one solution. A few caveats:
a. IE Specific
b. I never optimized the javascript to use parameters
Hope this helps soeone achieve what they need. If you find a better solution please feel free to let me know!
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:1solidbuttonface;
visibility:hidden;
border:2outsetbuttonhighlight;
}
.menuitems {
padding-left:15px;
padding-right:10px;
}
-->
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=""
var rightedge = document.body.clientWidth-event.clientX;
var bottomedge = document.body.clientHeight-event.clientY;
if (rightedge
skin0"οnmοuseοut="lowlightie5()"
>
if (document.all) {
ie5menu.className = menuskin;
document.getElementById('TreeView1').oncontextmenu = showmenuie5;
document.body.onclick = hidemenuie5;
}
A few ASP.NET 2.0 TreeView coders were asking for a how to have context menus - per node - on the TreeView control. Well I spent a small amount of time on this and wanted to post one solution. A few caveats:
a. IE Specific
b. I never optimized the javascript to use parameters
Hope this helps soeone achieve what they need. If you find a better solution please feel free to let me know!
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:1solidbuttonface;
visibility:hidden;
border:2outsetbuttonhighlight;
}
.menuitems {
padding-left:15px;
padding-right:10px;
}
-->
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=""
var rightedge = document.body.clientWidth-event.clientX;
var bottomedge = document.body.clientHeight-event.clientY;
if (rightedge
skin0"οnmοuseοut="lowlightie5()"
>
if (document.all) {
ie5menu.className = menuskin;
document.getElementById('TreeView1').oncontextmenu = showmenuie5;
document.body.onclick = hidemenuie5;
}