asp.net XPPanel管理菜单
来源:互联网 发布:烈火交友软件下载 编辑:程序博客网 时间:2024/05/29 13:52
最近做project需要用到类似XPPanel的管理菜单,找了N久也没找到比较合适的,于是乎自己动手,丰衣足食,写了个控件,记录下来以做资料
Link.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace NetSharp.WebControl.Explore
...{
/**//// <summary>
/// Summary description for Link
/// </summary>
public class Link
...{
constructor#region constructor
/**//// <summary>
/// 默认构造函数
/// </summary>
/// <param name="linkGroupID"></param>
/// <param name="text"></param>
/// <param name="linkImage"></param>
/// <param name="linkUrl"></param>
/// <param name="target"></param>
public Link(int linkGroupID, string text, string linkImage)
...{
this._linkGrupID = linkGroupID;
this._text = text;
this._linkImage = linkImage;
}
// End of Link
/**//// <summary>
/// 默认构造函数
/// </summary>
/// <param name="linkGroupID"></param>
/// <param name="text"></param>
/// <param name="linkImage"></param>
/// <param name="linkUrl"></param>
/// <param name="target"></param>
public Link(int linkGroupID, string text, string linkImage, string linkUrl)
...{
this._linkGrupID = linkGroupID;
this._text = text;
this._linkImage = linkImage;
this._linkUrl = linkUrl;
}
// End of Link
/**//// <summary>
/// 默认构造函数
/// </summary>
/// <param name="linkGroupID"></param>
/// <param name="text"></param>
/// <param name="linkImage"></param>
/// <param name="linkUrl"></param>
/// <param name="target"></param>
public Link(int linkGroupID, string text, string linkImage, string linkUrl, string target)
...{
this._linkGrupID = linkGroupID;
this._text = text;
this._linkImage = linkImage;
this._linkUrl = linkUrl;
this._target = target;
}
// End of Link
#endregion
private properties#region private properties
/**//// <summary>
/// LinkGroup的唯一ID
/// </summary>
private int _linkGrupID;
private string _text = string.Empty;
private string _linkImage = string.Empty;
private string _linkUrl = "";
private string _target = "main";
#endregion
public properties#region public properties
/**//// <summary>
/// LinkGroup的唯一ID
/// </summary>
public int LinkGroupID
...{
get ...{ return _linkGrupID; }
set ...{ _linkGrupID = value; }
}
/**//// <summary>
/// 要显示的字符串
/// </summary>
public string Text
...{
get ...{ return _text; }
set ...{ _text = value; }
}
/**//// <summary>
/// 要显示在链接左边的小图片
/// </summary>
public string LinkImage
...{
get ...{ return _linkImage; }
set ...{ _linkImage = value; }
}
/**//// <summary>
/// 链接的Url地址
/// </summary>
public string LinkUrl
...{
get ...{ return _linkUrl; }
set...{_linkUrl = value;}
}
/**//// <summary>
/// 链接打开目标窗口名称
/// </summary>
public string Target
...{
get ...{ return _target; }
set ...{ _target = value; }
}
#endregion
}
/**//// <summary>
/// Collection Class of Link_Collection
/// </summary>
public class Link_Collection : ArrayList
...{
/**//// <summary>
/// adds an item
/// </summary>
/// <param name="item">an object of Colour class</param>
public void Add(Link item)
...{
base.Add(item);
}
//End of Add
/**//// <summary>
/// returns data according to given index
/// </summary>
public new Link this[int nIndex]
...{
get
...{
return (Link)base[nIndex];
}
}
}
//End of class Link_Collection
}
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace NetSharp.WebControl.Explore
...{
/**//// <summary>
/// Summary description for Link
/// </summary>
public class Link
...{
constructor#region constructor
/**//// <summary>
/// 默认构造函数
/// </summary>
/// <param name="linkGroupID"></param>
/// <param name="text"></param>
/// <param name="linkImage"></param>
/// <param name="linkUrl"></param>
/// <param name="target"></param>
public Link(int linkGroupID, string text, string linkImage)
...{
this._linkGrupID = linkGroupID;
this._text = text;
this._linkImage = linkImage;
}
// End of Link
/**//// <summary>
/// 默认构造函数
/// </summary>
/// <param name="linkGroupID"></param>
/// <param name="text"></param>
/// <param name="linkImage"></param>
/// <param name="linkUrl"></param>
/// <param name="target"></param>
public Link(int linkGroupID, string text, string linkImage, string linkUrl)
...{
this._linkGrupID = linkGroupID;
this._text = text;
this._linkImage = linkImage;
this._linkUrl = linkUrl;
}
// End of Link
/**//// <summary>
/// 默认构造函数
/// </summary>
/// <param name="linkGroupID"></param>
/// <param name="text"></param>
/// <param name="linkImage"></param>
/// <param name="linkUrl"></param>
/// <param name="target"></param>
public Link(int linkGroupID, string text, string linkImage, string linkUrl, string target)
...{
this._linkGrupID = linkGroupID;
this._text = text;
this._linkImage = linkImage;
this._linkUrl = linkUrl;
this._target = target;
}
// End of Link
#endregion
private properties#region private properties
/**//// <summary>
/// LinkGroup的唯一ID
/// </summary>
private int _linkGrupID;
private string _text = string.Empty;
private string _linkImage = string.Empty;
private string _linkUrl = "";
private string _target = "main";
#endregion
public properties#region public properties
/**//// <summary>
/// LinkGroup的唯一ID
/// </summary>
public int LinkGroupID
...{
get ...{ return _linkGrupID; }
set ...{ _linkGrupID = value; }
}
/**//// <summary>
/// 要显示的字符串
/// </summary>
public string Text
...{
get ...{ return _text; }
set ...{ _text = value; }
}
/**//// <summary>
/// 要显示在链接左边的小图片
/// </summary>
public string LinkImage
...{
get ...{ return _linkImage; }
set ...{ _linkImage = value; }
}
/**//// <summary>
/// 链接的Url地址
/// </summary>
public string LinkUrl
...{
get ...{ return _linkUrl; }
set...{_linkUrl = value;}
}
/**//// <summary>
/// 链接打开目标窗口名称
/// </summary>
public string Target
...{
get ...{ return _target; }
set ...{ _target = value; }
}
#endregion
}
/**//// <summary>
/// Collection Class of Link_Collection
/// </summary>
public class Link_Collection : ArrayList
...{
/**//// <summary>
/// adds an item
/// </summary>
/// <param name="item">an object of Colour class</param>
public void Add(Link item)
...{
base.Add(item);
}
//End of Add
/**//// <summary>
/// returns data according to given index
/// </summary>
public new Link this[int nIndex]
...{
get
...{
return (Link)base[nIndex];
}
}
}
//End of class Link_Collection
}
LinKGroup.cs
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Threading;
namespace NetSharp.WebControl.Explore
...{
/**//// <summary>
/// XPPanel单个分组
/// </summary>
public class LinkGroup
...{
constrctor#region constrctor
/**//// <summary>
/// Constrctor
/// </summary>
public LinkGroup()...{}
// End of LinkGroup
/**//// <summary>
/// Constrctor
/// </summary>
/// <param name="groupName">groupName</param>
public LinkGroup(string groupName)
...{
this._groupName = groupName;
}
// End of LinkGroup
#endregion
private properties#region private properties
/**//// <summary>
/// 分组唯一ID,由系统自动产生
/// </summary>
private int _groupID = 0;
/**//// <summary>
/// 链接集合
/// </summary>
private Link_Collection _linkList = new Link_Collection();
/**//// <summary>
/// XPPanel分组名称
/// </summary>
private string _groupName = String.Empty;
/**//// <summary>
/// XPPanel分组标题背景图片
/// </summary>
private string _backImage = "Image/XPPanel_LinkGroup_Title_bg.gif";
/**//// <summary>
/// 该分组是否展开
/// </summary>
private bool _expanded = true;
/**//// <summary>
/// CssClassName
/// </summary>
private string _cssClass = string.Empty;
/**//// <summary>
/// 行高
/// </summary>
private int _titleHeight = 25;
private bool _isAlwaysExpaned = false;
#endregion
public properties#region public properties
/**//// <summary>
/// 分组唯一ID,由系统自动产生
/// </summary>
public int GroupID
...{
get
...{
if (_groupID != 0)
return _groupID;
else
...{
DateTime currDate = DateTime.Now;
System.Threading.Thread.Sleep(3);
_groupID = currDate.Millisecond;
return _groupID;
}
// End of if
}
set ...{ _groupID = value; }
}
/**//// <summary>
/// 链接集合
/// </summary>
public Link_Collection LinkList
...{
get ...{ return _linkList; }
set ...{ _linkList = value; }
}
/**//// <summary>
/// XPPanel分组名称
/// </summary>
public string GroupName
...{
get ...{ return _groupName; }
set ...{ _groupName = value; }
}
/**//// <summary>
/// XPPanel分组标题背景图片
/// </summary>
public string BackImage
...{
get ...{ return _backImage; }
set ...{ _backImage = value; }
}
/**//// <summary>
/// 该分组是否展开
/// </summary>
public bool Expanded
...{
get ...{ return _expanded; }
set ...{ _expanded = value; }
}
/**//// <summary>
/// CssClassName
/// </summary>
public string CssClass
...{
get ...{ return _cssClass; }
set ...{ _cssClass = value; }
}
/**//// <summary>
/// 行高
/// </summary>
public int TitleHeight
...{
get ...{ return _titleHeight; }
set ...{ _titleHeight = value; }
}
/**//// <summary>
/// 是否始终展开
/// </summary>
public bool IsAlwaysExpaned
...{
get ...{ return _isAlwaysExpaned; }
set ...{ _isAlwaysExpaned = value; }
}
#endregion
Public methods#region Public methods
public void AddLink(Link _link)
...{
this._linkList.Add(_link);
}
#endregion
}
/**//// <summary>
/// Collection Class of LinkGroup_Collection
/// </summary>
public class LinkGroup_Collection : ArrayList
...{
/**//// <summary>
/// adds an item
/// </summary>
/// <param name="item">an object of Colour class</param>
public void Add(LinkGroup item)
...{
base.Add(item);
}
//End of Add
/**//// <summary>
/// returns data according to given index
/// </summary>
public new LinkGroup this[int nIndex]
...{
get
...{
return (LinkGroup)base[nIndex];
}
}
}
//End of class LinkGroup_Collection
}
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Threading;
namespace NetSharp.WebControl.Explore
...{
/**//// <summary>
/// XPPanel单个分组
/// </summary>
public class LinkGroup
...{
constrctor#region constrctor
/**//// <summary>
/// Constrctor
/// </summary>
public LinkGroup()...{}
// End of LinkGroup
/**//// <summary>
/// Constrctor
/// </summary>
/// <param name="groupName">groupName</param>
public LinkGroup(string groupName)
...{
this._groupName = groupName;
}
// End of LinkGroup
#endregion
private properties#region private properties
/**//// <summary>
/// 分组唯一ID,由系统自动产生
/// </summary>
private int _groupID = 0;
/**//// <summary>
/// 链接集合
/// </summary>
private Link_Collection _linkList = new Link_Collection();
/**//// <summary>
/// XPPanel分组名称
/// </summary>
private string _groupName = String.Empty;
/**//// <summary>
/// XPPanel分组标题背景图片
/// </summary>
private string _backImage = "Image/XPPanel_LinkGroup_Title_bg.gif";
/**//// <summary>
/// 该分组是否展开
/// </summary>
private bool _expanded = true;
/**//// <summary>
/// CssClassName
/// </summary>
private string _cssClass = string.Empty;
/**//// <summary>
/// 行高
/// </summary>
private int _titleHeight = 25;
private bool _isAlwaysExpaned = false;
#endregion
public properties#region public properties
/**//// <summary>
/// 分组唯一ID,由系统自动产生
/// </summary>
public int GroupID
...{
get
...{
if (_groupID != 0)
return _groupID;
else
...{
DateTime currDate = DateTime.Now;
System.Threading.Thread.Sleep(3);
_groupID = currDate.Millisecond;
return _groupID;
}
// End of if
}
set ...{ _groupID = value; }
}
/**//// <summary>
/// 链接集合
/// </summary>
public Link_Collection LinkList
...{
get ...{ return _linkList; }
set ...{ _linkList = value; }
}
/**//// <summary>
/// XPPanel分组名称
/// </summary>
public string GroupName
...{
get ...{ return _groupName; }
set ...{ _groupName = value; }
}
/**//// <summary>
/// XPPanel分组标题背景图片
/// </summary>
public string BackImage
...{
get ...{ return _backImage; }
set ...{ _backImage = value; }
}
/**//// <summary>
/// 该分组是否展开
/// </summary>
public bool Expanded
...{
get ...{ return _expanded; }
set ...{ _expanded = value; }
}
/**//// <summary>
/// CssClassName
/// </summary>
public string CssClass
...{
get ...{ return _cssClass; }
set ...{ _cssClass = value; }
}
/**//// <summary>
/// 行高
/// </summary>
public int TitleHeight
...{
get ...{ return _titleHeight; }
set ...{ _titleHeight = value; }
}
/**//// <summary>
/// 是否始终展开
/// </summary>
public bool IsAlwaysExpaned
...{
get ...{ return _isAlwaysExpaned; }
set ...{ _isAlwaysExpaned = value; }
}
#endregion
Public methods#region Public methods
public void AddLink(Link _link)
...{
this._linkList.Add(_link);
}
#endregion
}
/**//// <summary>
/// Collection Class of LinkGroup_Collection
/// </summary>
public class LinkGroup_Collection : ArrayList
...{
/**//// <summary>
/// adds an item
/// </summary>
/// <param name="item">an object of Colour class</param>
public void Add(LinkGroup item)
...{
base.Add(item);
}
//End of Add
/**//// <summary>
/// returns data according to given index
/// </summary>
public new LinkGroup this[int nIndex]
...{
get
...{
return (LinkGroup)base[nIndex];
}
}
}
//End of class LinkGroup_Collection
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NetSharp.WebControl.Explore
...{
[DefaultProperty("Text")]
[ToolboxData("<{0}:XPPanel1 runat=server></{0}:XPPanel1>")]
public class XPPanel1 : System.Web.UI.WebControls.WebControl
...{
Private properties#region Private properties
private string _XMLFile = string.Empty;
private int _linkItemHeight = 20;
private LinkGroup_Collection _LinkGroupList = new LinkGroup_Collection();
#endregion
Public properties#region Public properties
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Description("The name of the XML file to be used")]
[Localizable(true)]
public string XMLFile
...{
get
...{
return _XMLFile;
}
set
...{
_XMLFile = value;
}
}
[Category("Appearance")]
[DefaultValue(20)]
[Description("链接项的行高")]
public int LinkItemHeight
...{
get
...{
return _linkItemHeight;
}
set
...{
_linkItemHeight = value;
}
}
/**//// <summary>
/// XPPanel 链接分组
/// </summary>
public LinkGroup_Collection LinkGroupList
...{
get ...{ return _LinkGroupList; }
set ...{ _LinkGroupList = value; }
}
#endregion
Public methods#region Public methods
/**//// <summary>
/// 将现有LinkGroup添加到_LinkGroupList
/// </summary>
/// <param name="_linkGroup">待添加的LinkGroup</param>
public void AddLinkGroup(LinkGroup _linkGroup)
...{
this._LinkGroupList.Add(_linkGroup);
}
// End of AddLinkGroup
#endregion
// 重写RenderContents方法
protected override void RenderContents(HtmlTextWriter output)
...{
// output Style Sheet
output.Write(@"
<STYLE type='text/css'>
.sec_menu {
BORDER-RIGHT: white 1px solid; BACKGROUND: #f7f7f7; PADDING-BOTTOM: 5px; OVERFLOW: hidden; BORDER-LEFT: white 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: white 1px solid
}
.menu_title {
}
.menu_title SPAN {
FONT-WEIGHT: bold; LEFT: 8px; COLOR: #333333; POSITION: relative; TOP: 2px
}
.menu_title2 {
}
.menu_title2 SPAN {
FONT-WEIGHT: bold; LEFT: 8px; COLOR: #cc0000; POSITION: relative; TOP: 2px
}
</STYLE>");
// output javascript needed
output.Write(" <SCRIPT language="javascript"> ");
output.Write("function showsubmenu(sid) {");
output.Write(" whichEl = eval("submenu" + sid);");
output.Write(" if (whichEl.style.display == "none") { ");
output.Write(" eval("submenu" + sid + ".style.display=/"/";"); } ");
output.Write(" else { ");
output.Write(" eval("submenu" + sid + ".style.display=/"none/";"); } }");
output.Write("</SCRIPT> ");
// output all datas
foreach (LinkGroup _linkGroup in _LinkGroupList)
...{
output.Write("<!-- Group " + _linkGroup.GroupName + " Start-->");
output.Write(@"
<TABLE cellSpacing=0 cellPadding=0 width='" + this.Width.ToString() + @"' align='center'>
<TBODY>
<!-- Group Title -->
<TR>");
if(_linkGroup.IsAlwaysExpaned)
...{
//始终展开
output.Write(@"
<TD class='menu_title' id='menuTitle" + _linkGroup.GroupID.ToString() + "' background='" + _linkGroup.BackImage + @"' height=" + _linkGroup.TitleHeight.ToString() + @">
<SPAN>" + _linkGroup.GroupName + @"</SPAN>
</TD>");
}
else
...{
output.Write(@"
<TD class='menu_title' id='menuTitle" + _linkGroup.GroupID.ToString() + "' style='CURSOR: hand' onclick=showsubmenu(" + _linkGroup.GroupID.ToString() + ") background='" + _linkGroup.BackImage + "' height=" + _linkGroup.TitleHeight.ToString() + @">
<SPAN>" + _linkGroup.GroupName + @"</SPAN>
</TD>");
}
// End of if
if (_linkGroup.Expanded)
...{
output.Write(@"
</TR>
<!-- Group Title End -->
<TR>
<TD id='submenu" + _linkGroup.GroupID.ToString() + @"'>
<DIV class='sec_menu' style='WIDTH: 158px'>
<TABLE cellSpacing=0 cellPadding=0 width=130 align=center>
<TBODY>");
}
else
...{
output.Write(@"
</TR>
<!-- Group Title End -->
<TR>
<TD id='submenu" + _linkGroup.GroupID.ToString() + @"' style='DISPLAY: none'>
<DIV class='sec_menu' style='WIDTH: 158px'>
<TABLE cellSpacing=0 cellPadding=0 width=130 align=center>
<TBODY>");
}
// End of if
// 为单个链接生成相应的html代码
foreach (Link _link in _linkGroup.LinkList)
...{
if (_link.LinkImage != string.Empty)
...{
if (0 == _link.LinkUrl.Length)
...{
// 没有链接
output.Write(@"
<TR>
<TD height=20><IMG height='16' src='" + _link.LinkImage + "' width='16'>" + _link.Text + "</TD></TR>");
}
else
output.Write(@"
<TR>
<TD height=20><IMG height='16' src='" + _link.LinkImage + "' width='16'><A href='" + _link.LinkUrl + "'target='" + _link.Target + "'>" + _link.Text + "</A></TD></TR>");
// End of if
}
else
...{
if (0 == _link.LinkUrl.Length)
// 没有链接
output.Write(@"
<TR>
<TD height='20'>
<P style='MARGIN-LEFT: 25px'>" + _link.Text + "</P></TD></TR>");
else
output.Write(@"
<TR>
<TD height='20'>
<P style='MARGIN-LEFT: 25px'><A href='" + _link.LinkUrl + "'target='" + _link.Target + "'>" + _link.Text + "</A></P></TD></TR>");
}
// End of if
}
// End of foreach
output.Write(@"
</TBODY>
</TABLE>
</DIV>
<DIV style='WIDTH: " + this.Width.ToString() + @"px'>
<TABLE cellSpacing='0' cellPadding='0' width='130' align=center>
<TBODY>
<TR><TD height=20></TD></TR>
</TBODY>
</TABLE>
</DIV>
</TD>
</TR></TBODY></TABLE>");
}
// End of foreach
}
// End of RenderContents
}
// End of class XPPanel1
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NetSharp.WebControl.Explore
...{
[DefaultProperty("Text")]
[ToolboxData("<{0}:XPPanel1 runat=server></{0}:XPPanel1>")]
public class XPPanel1 : System.Web.UI.WebControls.WebControl
...{
Private properties#region Private properties
private string _XMLFile = string.Empty;
private int _linkItemHeight = 20;
private LinkGroup_Collection _LinkGroupList = new LinkGroup_Collection();
#endregion
Public properties#region Public properties
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Description("The name of the XML file to be used")]
[Localizable(true)]
public string XMLFile
...{
get
...{
return _XMLFile;
}
set
...{
_XMLFile = value;
}
}
[Category("Appearance")]
[DefaultValue(20)]
[Description("链接项的行高")]
public int LinkItemHeight
...{
get
...{
return _linkItemHeight;
}
set
...{
_linkItemHeight = value;
}
}
/**//// <summary>
/// XPPanel 链接分组
/// </summary>
public LinkGroup_Collection LinkGroupList
...{
get ...{ return _LinkGroupList; }
set ...{ _LinkGroupList = value; }
}
#endregion
Public methods#region Public methods
/**//// <summary>
/// 将现有LinkGroup添加到_LinkGroupList
/// </summary>
/// <param name="_linkGroup">待添加的LinkGroup</param>
public void AddLinkGroup(LinkGroup _linkGroup)
...{
this._LinkGroupList.Add(_linkGroup);
}
// End of AddLinkGroup
#endregion
// 重写RenderContents方法
protected override void RenderContents(HtmlTextWriter output)
...{
// output Style Sheet
output.Write(@"
<STYLE type='text/css'>
.sec_menu {
BORDER-RIGHT: white 1px solid; BACKGROUND: #f7f7f7; PADDING-BOTTOM: 5px; OVERFLOW: hidden; BORDER-LEFT: white 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: white 1px solid
}
.menu_title {
}
.menu_title SPAN {
FONT-WEIGHT: bold; LEFT: 8px; COLOR: #333333; POSITION: relative; TOP: 2px
}
.menu_title2 {
}
.menu_title2 SPAN {
FONT-WEIGHT: bold; LEFT: 8px; COLOR: #cc0000; POSITION: relative; TOP: 2px
}
</STYLE>");
// output javascript needed
output.Write(" <SCRIPT language="javascript"> ");
output.Write("function showsubmenu(sid) {");
output.Write(" whichEl = eval("submenu" + sid);");
output.Write(" if (whichEl.style.display == "none") { ");
output.Write(" eval("submenu" + sid + ".style.display=/"/";"); } ");
output.Write(" else { ");
output.Write(" eval("submenu" + sid + ".style.display=/"none/";"); } }");
output.Write("</SCRIPT> ");
// output all datas
foreach (LinkGroup _linkGroup in _LinkGroupList)
...{
output.Write("<!-- Group " + _linkGroup.GroupName + " Start-->");
output.Write(@"
<TABLE cellSpacing=0 cellPadding=0 width='" + this.Width.ToString() + @"' align='center'>
<TBODY>
<!-- Group Title -->
<TR>");
if(_linkGroup.IsAlwaysExpaned)
...{
//始终展开
output.Write(@"
<TD class='menu_title' id='menuTitle" + _linkGroup.GroupID.ToString() + "' background='" + _linkGroup.BackImage + @"' height=" + _linkGroup.TitleHeight.ToString() + @">
<SPAN>" + _linkGroup.GroupName + @"</SPAN>
</TD>");
}
else
...{
output.Write(@"
<TD class='menu_title' id='menuTitle" + _linkGroup.GroupID.ToString() + "' style='CURSOR: hand' onclick=showsubmenu(" + _linkGroup.GroupID.ToString() + ") background='" + _linkGroup.BackImage + "' height=" + _linkGroup.TitleHeight.ToString() + @">
<SPAN>" + _linkGroup.GroupName + @"</SPAN>
</TD>");
}
// End of if
if (_linkGroup.Expanded)
...{
output.Write(@"
</TR>
<!-- Group Title End -->
<TR>
<TD id='submenu" + _linkGroup.GroupID.ToString() + @"'>
<DIV class='sec_menu' style='WIDTH: 158px'>
<TABLE cellSpacing=0 cellPadding=0 width=130 align=center>
<TBODY>");
}
else
...{
output.Write(@"
</TR>
<!-- Group Title End -->
<TR>
<TD id='submenu" + _linkGroup.GroupID.ToString() + @"' style='DISPLAY: none'>
<DIV class='sec_menu' style='WIDTH: 158px'>
<TABLE cellSpacing=0 cellPadding=0 width=130 align=center>
<TBODY>");
}
// End of if
// 为单个链接生成相应的html代码
foreach (Link _link in _linkGroup.LinkList)
...{
if (_link.LinkImage != string.Empty)
...{
if (0 == _link.LinkUrl.Length)
...{
// 没有链接
output.Write(@"
<TR>
<TD height=20><IMG height='16' src='" + _link.LinkImage + "' width='16'>" + _link.Text + "</TD></TR>");
}
else
output.Write(@"
<TR>
<TD height=20><IMG height='16' src='" + _link.LinkImage + "' width='16'><A href='" + _link.LinkUrl + "'target='" + _link.Target + "'>" + _link.Text + "</A></TD></TR>");
// End of if
}
else
...{
if (0 == _link.LinkUrl.Length)
// 没有链接
output.Write(@"
<TR>
<TD height='20'>
<P style='MARGIN-LEFT: 25px'>" + _link.Text + "</P></TD></TR>");
else
output.Write(@"
<TR>
<TD height='20'>
<P style='MARGIN-LEFT: 25px'><A href='" + _link.LinkUrl + "'target='" + _link.Target + "'>" + _link.Text + "</A></P></TD></TR>");
}
// End of if
}
// End of foreach
output.Write(@"
</TBODY>
</TABLE>
</DIV>
<DIV style='WIDTH: " + this.Width.ToString() + @"px'>
<TABLE cellSpacing='0' cellPadding='0' width='130' align=center>
<TBODY>
<TR><TD height=20></TD></TR>
</TBODY>
</TABLE>
</DIV>
</TD>
</TR></TBODY></TABLE>");
}
// End of foreach
}
// End of RenderContents
}
// End of class XPPanel1
}
- asp.net XPPanel管理菜单
- ASP.NET 菜单级别权限管理ORACLE数据库实现分析
- ASP.NET 菜单级别权限管理ORACLE数据库实现分析
- C# ASP.NET--------高手进阶篇:右键菜单管理
- asp.net 级联菜单
- asp.net中的联动菜单
- asp.net中的联动菜单
- asp.net中的联动菜单
- asp.net中的联动菜单
- asp.net 下拉菜单负值
- asp.net中的联动菜单
- ASP.NET 菜单控件概述
- asp.net 动态树菜单
- asp.net 动态纵向菜单
- ASP.NET - 菜单控件概述
- ASP.NET - 菜单控件概述
- Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块
- [Asp.net]Calendar+JqueryUi实现日程管理(右键菜单,添加,编辑,删除,源码)
- Determining the Size of a Class Object
- 解决了一直困惑我的接口问题
- Advanced Makefile Tricks
- ASP .NET 2.0 学习笔记--(一):数据库的简单绑定
- VB编程的必备技巧
- asp.net XPPanel管理菜单
- 常用系统配置和命令
- Websphere App Server 6造成磁盘空间不足的一个小bug
- 五子棋进展(10.23)
- WEB创业的十条戒律
- 水晶报表实现选择任意字段打印(VB)
- DIY Sql Injection利器--RedSI ReView
- 高效率的排列组合算法
- cpld和fpga的优缺点