从网上下的,稍微改进了一下,做成控件形式,给各位有需要的朋友,其中有很多不完善之处,且只能在IE下使用.
源码:
namespace
LongYu.Utility
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
using System;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
[ToolboxData("<{0}:TaskPanelBar runat=server></{0}:TaskPanelBar>")]
public class TaskPanelBar : WebControl
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
private StringBuilder builder1;
string sRalativeCSSFolder;
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
属性、事件#region 属性、事件
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private int _paddingLeft;
private string _linkTarget;
[Category("TaskPanelBar"), DefaultValue("_self"), Bindable(true), Description("链接目标的窗口")]
public string LinkTarget
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return this._linkTarget;
}
set
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this._linkTarget = value;
}
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private Unit _width;
[Bindable(false), Category("TaskPanelBar"), Description("设置或获取菜单栏的宽度"), DefaultValue("155px")]
public override Unit Width
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return this._width;
}
set
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this._width = value;
}
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private string _Folder="webparts/";
[Category( "高级属性" ) , Description( "获得或设置基本路径。" ) , BrowsableAttribute( true ),DefaultValue("webparts/")]
public string BaseDir
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return _Folder;
}
set
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
_Folder = value;
}
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
#endregion
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public TaskPanelBar()
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this._paddingLeft = 0;
sRalativeCSSFolder = _Folder;
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
builder1 = new StringBuilder();
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
builder1.AppendFormat("<table cellpadding=\"0\" cellspacing=\"0\" width=\"
{0}\" id=\"
{1}\" class=\"clsPartContainer\" border=\"0\" bgcolor=\"#f0e8d8\">", this.Width, this.ClientID);
builder1.Append("<LINK REL='stylesheet' TYPE='text/css' HREF='" + sRalativeCSSFolder + "/WebParts.css'></LINK>");
builder1.Append("<tr>");
builder1.Append("<td valign=\"top\" bgcolor=\"#f0e8d8\">");
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public void AddChildNode(string text,string description,string url)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
this.builder1.AppendFormat("<UL style=\"padding-left:
{4}px;\"><LI><a href=\"
{0}\" title=\"
{1}\" target=\"
{2}\">{3}</a></LI></UL>", new object[]
{ url, description, this.LinkTarget, text, this._paddingLeft });
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public void AddParentNode(string text)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
builder1.Append("<table cellpadding=\"0\" cellspacing=\"0\" class=\"clsPart\" width=\"150\" border=\"0\">");
builder1.Append("<tr>");
builder1.Append("<td class=\"clsPartHead\" valign=\"top\" align=\"left\" height=\"19\" width=\"15\">");
builder1.Append("<img class=\"clsPartHead\" src=\"" + sRalativeCSSFolder + "/Images/gripblue.gif\" height=\"19\" width=\"15\">");
builder1.Append("</td>");
builder1.Append("<td class=\"clsPartHead\" valign=\"middle\" align=\"left\" width=\"115\">");
builder1.AppendFormat("<b class=\"clsPartHead\">{0}</b>", text);
builder1.Append("</td>");
builder1.Append("<td class=\"clsPartRight\" valign=\"top\" align=\"right\" height=\"19\" width=\"25\" title=\"\u663e\u793a/\u9690\u85cf\">");
builder1.Append("<img class=\"clsMinimize\" src=\"" + sRalativeCSSFolder + "/Images/downlevel.gif\" height=\"19\" width=\"25\">");
builder1.Append("</td>");
builder1.Append("</tr>");
builder1.Append("<tr>");
builder1.Append("<td colspan=\"3\">");
builder1.Append("<table bgcolor=\"#f0e8d8\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">");
builder1.Append("<tr>");
builder1.Append("<td bgcolor=\"#6699cc\" colspan=\"1\" width=\"1px\" valign=\"top\"><div style=\"margin:1px;padding:0px;\"></div>");
builder1.Append("</td>");
builder1.Append("<td width=\"145\" colspan=\"2\" bgcolor=\"#f5f5f5\" valign=\"top\">");
builder1.Append("<div class=\"PartContent\">");
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public void EndParentNode()
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
builder1.Append("</div>");
builder1.Append("</td>");
builder1.Append("<td bgcolor=\"#6699cc\" colspan=\"1\" width=\"1px\" valign=\"top\"><div style=\"margin:1px;padding:0px;\"></div>");
builder1.Append("</td>");
builder1.Append("</tr>");
builder1.Append("<tr>");
builder1.Append("<td bgcolor=\"#6699cc\" colspan=\"3\" height=\"1\" valign=\"top\"><div style=\"margin:1px;padding:0px;\"></div>");
builder1.Append("</td>");
builder1.Append("</tr>");
builder1.Append("</table>");
builder1.Append("</td>");
builder1.Append("</tr>");
builder1.Append("</table>");
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
protected override void Render(HtmlTextWriter output)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
builder1.Append("<div class=\"storeUserData\" id=\"oLayout\"></div>");
builder1.Append("</td>");
builder1.Append("</tr>");
builder1.Append("</table>");
output.Write(builder1.ToString());
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
}
![None.gif](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
在页面里应用:
<%
@ Register TagPrefix
=
"
cc1
"
Namespace
=
"
LongYu.Utility
"
Assembly
=
"
LongYu.Utility
"
%>
<
cc1:TaskPanelBar id
=
"
MyTaskPanelBar
"
runat
=
"
server
"
BaseDir
=
"
webparts
"
></
cc1:TaskPanelBar
>
后台代码示例:
protected
LongYu.Utility.TaskPanelBar MyTaskPanelBar;
private
void
Page_Load(
object
sender, System.EventArgs e)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
for (int i=0;i<4;i++)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
MyTaskPanelBar.AddParentNode("标题");
MyTaskPanelBar.AddChildNode("内容","我是内容0","http://www.hszw.com");
MyTaskPanelBar.AddChildNode("内容1","我是内容1","http://www.hszw.com");
MyTaskPanelBar.EndParentNode();
}
![InBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
显示效果:
图片,CSS,示例下载:
点击下载
转载于:https://www.cnblogs.com/longyu/archive/2007/06/02/a_WebMenu_Of_Aspnet_11.html