高分求助 TreeView的右击菜单

ikuaifenglea 2008-08-19 02:32:25
比如我要在右击某项时弹出菜单
包括添加、删除、修改之类的菜单。
如何实现?

我的treeView 是动态生成的
web 下 不是在winform下
...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomiehu 2008-08-19
  • 打赏
  • 举报
回复
两种方法
1;用treeview控件,使用它里面的expend展开方法。
2;用Ajax来做。写一段JS来控制展开事件。

后者较好。实现方法网上去找下代码吧
CodingSir 2008-08-19
  • 打赏
  • 举报
回复
<%@ Page Language="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:1 solid buttonface;
visibility:hidden;
border:2 outset buttonhighlight;
}
.menuitems {
padding-left:15px;
padding-right:10px;
}
-->
</style>

<script type="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";
}
return false;
}
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>
<form id="form1" runat="server">
<div id="ie5menu" class="skin0" onmouseover="highlightie5()" onmouseout="lowlightie5()"
onclick="jumptoie5();">
<div id="one" class="menuitems" url="">
</div>
<div id="two" class="menuitems" url="">
</div>
</div>
<asp:TreeView ID="TreeView1" runat="server">
<Nodes>
<asp:TreeNode Text="a" Value="a">
<asp:TreeNode Text="b" Value="b">
<asp:TreeNode Text="c" Value="c"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="cc" Value="cc">
<asp:TreeNode Text="ccc" Value="ccc">
<asp:TreeNode Text="cccc" Value="cccc"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
<SelectedNodeStyle BackColor="#C00000" />
</asp:TreeView>
</form>

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

江城老温 2008-08-19
  • 打赏
  • 举报
回复
若是winfrom下,很简单。
mators 2008-08-19
  • 打赏
  • 举报
回复
http://webim.csdn.net/ 这种??
去扒它代码去
Norris Huang 2008-08-19
  • 打赏
  • 举报
回复
你都说啦,是在WEB下的,所以右键菜单肯定就是浏览器的菜单咯。除非你自己加ActiveX

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧