- /**
- asp.net 控件开发
- * */
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.ComponentModel;
- [assembly: TagPrefix("MyControl", "CG")]
- namespace MyControl
- {
- [DefaultPropertyAttribute("TitleText")]
- [ToolboxData("<{0}:LinksControl " +
- "TitleText='我的链接' " +
- "XmlFileName='linksList.xml' " +
- "runat='server'></{0}:LinksControl>")]
- public class LinksControl : Control
- { //这里添加了两个用于属性的私有成员变量
- private string _titleText = "";
- private string _xmlFileName = "";
- //下面添加了两个属性
- [BrowsableAttribute(true)]
- [DescriptionAttribute("设置标题栏的名称")]
- [DefaultValueAttribute("我的链接")]
- [CategoryAttribute("外观")]
- public virtual string TitleText
- {
- get { return _titleText; }
- set { _titleText = value; }
- }
- [BrowsableAttribute(true)]
- [DescriptionAttribute("存放链接的xml文件名")]
- [DefaultValueAttribute("")]
- [CategoryAttribute("数据")]
- public virtual string XmlFileName
- {
- get { return _xmlFileName; }
- set { _xmlFileName = value; }
- }
- protected override void Render(HtmlTextWriter writer)
- {
- if (!DesignMode)//设计时候 不使用
- {
- writer.WriteLine("<ul>");
- //这里先判断标题名称是否为空然后考虑是否添加标题
- if (_titleText != "")
- {
- writer.WriteLine("<li id='caption'>" + _titleText + "</li>");
- }
- string s;
- //判断xml文件是否存在
- if (_xmlFileName != "")
- {
- DataSet ds = new DataSet();
- ds.ReadXml(Page.Server.MapPath(_xmlFileName));
- foreach (DataRow row in ds.Tables["link"].Rows)
- {
- s = "<li><a href='";
- s += row["url"].ToString();
- s += "'target='_blank'>";
- s += row["name"].ToString().Trim();
- s += "</a></li>";
- writer.WriteLine(s);
- }
- }
- writer.WriteLine("</ul>");
- }
- }
- }
- }