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 linkBtn
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class WebCustomControl1 : CompositeControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
} set
{
ViewState["Text"] = value;
}
}
private int _iPrevCount = 5;
/// <summary>
/// 前部分记录数量
/// </summary>
[Bindable(true)]
[CategoryAttribute("Appearance")]
[Localizable(true)]
[DescriptionAttribute("前部分记录数量")]
[DefaultValueAttribute("前部分记录数量")]
public int iPrevCount
{
get
{
return ((ViewState["iPrevCount"] == null) ? this._iPrevCount : (int)ViewState["iPrevCount"]); } set
{
this._iPrevCount = value;
ViewState["iPrevCount"] = value;
}
}
private int _iNextCount = 5;
/// <summary>
/// 后部分记录数量
/// </summary>
[Bindable(true)]
[CategoryAttribute("Appearance")]
[Localizable(true)]
[DescriptionAttribute("后部分记录数量")]
[DefaultValueAttribute("后部分记录数量")]
public int iNextCount
{
get
{
return ((ViewState["iNextCount"] == null) ? this._iNextCount : (int)ViewState["iNextCount"]); } set
{ ViewState["iNextCount"] = value;
}
}
//数字按钮队列
private List<LinkButton> linkArray = new List<LinkButton>();
protected override void RecreateChildControls()
{
EnsureChildControls();
}
protected override void CreateChildControls()
{
#region 注册linkbutton
for (int i = 1; i <= this.iNextCount + this.iPrevCount; i++)
{
LinkButton _linkGoNum = new LinkButton();
_linkGoNum.ID = "linkGoNum" + i.ToString();
_linkGoNum.CommandArgument = i.ToString();
_linkGoNum.Text = i.ToString();
this.Controls.Add(_linkGoNum);
this.linkArray.Add(_linkGoNum);
} #endregion
}
protected override void RenderContents(HtmlTextWriter output)
{
for (int i = 0; i < this.linkArray.Count; i++)
{
this.linkArray[i].RenderControl(output);
}
}
}
}
本人想生成分页的数字按钮
_linkGoNum.Text = i.ToString();//第几页
分页样式如 6 7 8 9 10 ... 100 101 102 103 104 105
页面注册10个linkbutoon
_linkGoNum.Text为内容依次为6 7 8 9 10 ... 100 101 102 103 104 105
在子控件创建的时候怎样才能加入这些数字呢
如何动态插入想要插入的数字呢?例如这个_linkGoNum.Text的内容是由此
控件的某两个属性计算得到的 iRecordCount iPageSize iCurrentPage
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace linkBtn
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class WebCustomControl1 : CompositeControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
} set
{
ViewState["Text"] = value;
}
}
private int _iPrevCount = 5;
/// <summary>
/// 前部分记录数量
/// </summary>
[Bindable(true)]
[CategoryAttribute("Appearance")]
[Localizable(true)]
[DescriptionAttribute("前部分记录数量")]
[DefaultValueAttribute("前部分记录数量")]
public int iPrevCount
{
get
{
return ((ViewState["iPrevCount"] == null) ? this._iPrevCount : (int)ViewState["iPrevCount"]); } set
{
this._iPrevCount = value;
ViewState["iPrevCount"] = value;
}
}
private int _iNextCount = 5;
/// <summary>
/// 后部分记录数量
/// </summary>
[Bindable(true)]
[CategoryAttribute("Appearance")]
[Localizable(true)]
[DescriptionAttribute("后部分记录数量")]
[DefaultValueAttribute("后部分记录数量")]
public int iNextCount
{
get
{
return ((ViewState["iNextCount"] == null) ? this._iNextCount : (int)ViewState["iNextCount"]); } set
{ ViewState["iNextCount"] = value;
}
}
//数字按钮队列
private List<LinkButton> linkArray = new List<LinkButton>();
protected override void RecreateChildControls()
{
EnsureChildControls();
}
protected override void CreateChildControls()
{
#region 注册linkbutton
for (int i = 1; i <= this.iNextCount + this.iPrevCount; i++)
{
LinkButton _linkGoNum = new LinkButton();
_linkGoNum.ID = "linkGoNum" + i.ToString();
_linkGoNum.CommandArgument = i.ToString();
_linkGoNum.Text = i.ToString();
this.Controls.Add(_linkGoNum);
this.linkArray.Add(_linkGoNum);
} #endregion
}
protected override void RenderContents(HtmlTextWriter output)
{
for (int i = 0; i < this.linkArray.Count; i++)
{
this.linkArray[i].RenderControl(output);
}
}
}
}
本人想生成分页的数字按钮
_linkGoNum.Text = i.ToString();//第几页
分页样式如 6 7 8 9 10 ... 100 101 102 103 104 105
页面注册10个linkbutoon
_linkGoNum.Text为内容依次为6 7 8 9 10 ... 100 101 102 103 104 105
在子控件创建的时候怎样才能加入这些数字呢
如何动态插入想要插入的数字呢?例如这个_linkGoNum.Text的内容是由此
控件的某两个属性计算得到的 iRecordCount iPageSize iCurrentPage
假如你要创建一个TextBox控件的话就应该是这样的
TextBox txtItem=new TextBox();
然后把这个txtItem放到你自己的自定义控件里面去.
具体的实现我也不怎么清楚,我是看了一些开源的控件之后的记忆.