前两天在整理电脑资料时,发现这两个已被打入"冷宫"的控件。
运行效果如下:
其中的右击菜单控件的js源码是从milonic网站(一个商业JS库)上搜集来的, 本人觉得它的"生成菜单项"部分
非常不好用,所以自己封装了它的部分代码,用一个 XML文件记录相应的菜单项,并用cs写了一个递归来加载XML
中的菜单项,以实现控件绑定。
代码如下:
1
protected
override
void
Render(HtmlTextWriter output)
2
{
3
4
output.Write("<script type=/"text/javascript/" src=/""+ScriptPath+"/contextmenu.
5
js/"></script>/r/n");
6
7
output.Write("<script type=/"text/javascript/">/r/n");
8
9
output.Write("fixMozillaZIndex=true;/r/n");
10
output.Write("_menuCloseDelay=500;/r/n");
11
output.Write("_menuOpenDelay=150;/r/n");
12
output.Write("_subOffsetTop=2;/r/n");
13
output.Write("_subOffsetLeft=-2;/r/n");
14![](/Images/OutliningIndicators/InBlock.gif)
15
output.Write("with(contextStyle=new mm_style())/r/n");
16
output.Write("{/r/n");
17
output.Write("bordercolor=/"#999999/";/r/n");
18
output.Write("borderstyle=/"solid/";/r/n");
19
output.Write("borderwidth=1;/r/n");
20
output.Write("fontfamily=/"arial, verdana, tahoma/";/r/n");
21
output.Write("fontsize=/"75%/";/r/n");
22
output.Write("fontstyle=/"normal/";/r/n");
23
output.Write("headerbgcolor=/"#4F8EB6/";/r/n");
24
output.Write("headerborder=1;/r/n");
25
output.Write("headercolor=/"#ffffff/";/r/n");
26
output.Write("offbgcolor=/"#ffffff/";/r/n");
27
output.Write("offcolor=/"#000000/";/r/n");
28
output.Write("onbgcolor=/"#ECF4F9/";/r/n");
29
output.Write("onborder=/"1px solid #316AC5/";/r/n");
30
output.Write("oncolor=/"#000000/";/r/n");
31
output.Write("outfilter=/"randomdissolve(duration=0.4)/";/r/n");
32
output.Write("overfilter=/"Fade(duration=0.2);Shadow(color=#777777', Direction=135,
33
Strength=3)/";/r/n");
34
output.Write("padding=3;/r/n");
35
output.Write("pagebgcolor=/"#eeeeee/";/r/n");
36
output.Write("pageborder=/"1px solid #ffffff/";/r/n");
37
output.Write("pageimage=/""+this.ImageUrl+"/pageimg.gif/";/r/n");
38
output.Write("separatorcolor=/"#999999/";/r/n");
39
output.Write("subimage=/""+this.ImageUrl+"/subarrow.gif/";/r/n");
40
output.Write("}/r/n");
41![](/Images/OutliningIndicators/InBlock.gif)
42
output.Write("with(milonic=new menuname(/"contextMenu/")){/r/n");
43
output.Write("margin=3;/r/n");
44
output.Write("style=contextStyle;/r/n");
45
output.Write("top=/"offset=2/";/r/n");
46
47
DataSet dsSrc = new DataSet();
48
dsSrc.ReadXml(System.Web.HttpContext.Current.Server.MapPath(this.XmlFileFullPathName));
49![](/Images/OutliningIndicators/InBlock.gif)
50
string result="";
51
foreach(System.Data.DataRow dr in dsSrc.Tables[0].Select("parentid=0"))
52
{
53![](/Images/OutliningIndicators/InBlock.gif)
54
输出主菜单
86
}
87![](/Images/OutliningIndicators/InBlock.gif)
88
output.Write("}/r/n");
89
output.Write(result);
90
output.Write("drawMenus();/r/n");
91![](/Images/OutliningIndicators/InBlock.gif)
92
output.Write("</script>/r/n");
93
}
94![](/Images/OutliningIndicators/None.gif)
95
private
string
LoadSubMenuItem(DataSet dsSrc ,
string
parentid,
string
itemwidth,
string
margin)
96
{
97
StringBuilder sb=new StringBuilder();
98![](/Images/OutliningIndicators/InBlock.gif)
99
DataRow[] drs = dsSrc.Tables[0].Select("parentid="+parentid);
100
if(drs.Length>0)
101
{
102
103
sb.Append("with(milonic=new menuname(/""+parentid+"/")){/r/n");
104
sb.Append("itemwidth="+(itemwidth==""?"127":itemwidth)+";/r/n");
105
sb.Append("margin="+(margin==""?"3":margin)+";/r/n");
106
sb.Append("overflow=/"scroll/";/r/n");
107
sb.Append("style=contextStyle;/r/n");
108![](/Images/OutliningIndicators/InBlock.gif)
109
string result="";
110
foreach(DataRow dr in drs)
111
{
112
输出主菜单
145
}
146
sb.Append("}/r/n");
147
sb.Append(result);
148
}
149
return sb.ToString();
150
}
151![](/Images/OutliningIndicators/None.gif)
152
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
94
![](/Images/OutliningIndicators/None.gif)
95
![](/Images/OutliningIndicators/None.gif)
96
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
112
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
145
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
151
![](/Images/OutliningIndicators/None.gif)
152
![](/Images/OutliningIndicators/None.gif)
而另一个顶部菜单源码(c#)最早是从codeproject上得到的, 原作者我已忘记了,本人在这个控件基础上加上了图片菜单项
(修改 xsl),相信如果大家有Css基础的话,只要改一下相应的menu.css中的代码就会得到诸如 XP风格等样式的菜单了。另外因
为原作者写的代码扩展性很好,大家可以加入更多的个性化的元素。
关键字:.net, 控件,control,菜单,mainmenu右击菜单,contextmenu,代震军,daizhj
下载链接(for vs2008):/Files/daizhj/ContextMenu.rar