快速业务通道

ASP.NET自定义控件 第八天 显示多个条目星级评分的列表控件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
 get;     set;   } }

3.2 在BarChartItem类中使用了BarChartItemType枚举以标识当前项的类型( 类似于GridView中的标题、交替行等),编写该枚举实现:

public enum BarChartItemType
{
  Title,    //标题
  SubTitle,  //二级标题
  Item,    //数据项
  Footer    //页脚
}

3.3 定义该控件项的集合类BarChartItemCollection:

public class BarChartItemCollection : 

Collection<BarChartItem>
{
}

3.4 为了能够在创建项和绑定数据后暴露出相应的事件中使用户能够访问数据 项信息,编写自定义事件参数类:

public class BarChartItemEventArgs : EventArgs
{
  private BarChartItem _item;
  public BarChartItemEventArgs(BarChartItem item)
  {
    _item = item;
  }
  public BarChartItem Item
  {
    get
    {
      return _item;
    }
  }
}

3.5 定义模版容器类

public class TitleTemplateContainer : WebControl, INamingContainer
{
  private BarChart _parent;
  public TitleTemplateContainer(BarChart parent)
  {
    _parent = parent;
  }
  public string Title
  {
    get
    {
      return _parent.Title;
    }
  }
  public string SubTitle
  {
    get
    {
      return _parent.SubTitle;
    }
  }
  public BarChart BarChart
  {
    get
    {
      return _parent;
    }
  }
}

3.6 在ControlLibrary类库中创建BarChar类并定义私有变量,该类继承自 CompositeDataBoundControl类:

public class BarChart : CompositeDataBoundControl
{
  public event EventHandler<BarChartItemEventArgs> 

BarChartItemCreated;
  public event EventHandler<BarChartItemEventArgs> 

BarChartItemDataBound;
  private BarChartItemCollection _items;
  private ITemplate _titleTemplate;
  private TitleTemplateContainer _titleTemplateContainer;
  private TableItemStyle _titleStyle;
  private TableItemStyle _subtitleStyle;
  private TableItemStyle _labelStyle;
}

3.7 定义相关属性:

public string DataTextField
{
  get
  {
    object o = ViewState["DataTextField"];
    return o == null ? string.Empty : (string)o;
  }
  set
  {
    ViewState["DataTextField"] = value;
  }
}
public string DataValueField
{
  get
  {
    object o = ViewState["DataValueField"];
    return o == null ? string.Empty : (string)o;
  }
  set
  {
    ViewState["DataValueField"] = value;
  }
}
public BarChartItemCollection Items
{
  get
  {
    if (_items == null)
    {
      _items = new BarChartItemCollection();
    }
    return _items;
  }
}
[Browsable(false)]
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateContainer(typeof(TitleTemplateContainer))]
public ITemplate TitleTemplate
{
  get
  {
    return _titleTemplate;
  }
  set
  {
    _titleTemplate = value;
  }
}
public string Title
{
  get
  {
    object o = ViewState["Title"];
    return o == null ? string.Empty : (string)o;
  }
  set
  {
    ViewState[&qu

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号