动态创建Repeater,绑定数据.docxVIP

  • 5
  • 0
  • 约2.99千字
  • 约 3页
  • 2017-07-09 发布于河南
  • 举报
动态创建Repeater,绑定数据

asp:Repeater ID=CategoryList runat=server OnItemDataBound=CategoryList_ItemDataBound HeaderTemplate div style=width: 90%; text-align:left; padding-left:10px; /HeaderTemplate ItemTemplate div style=line-height:30px; imgsrc=images/jt_red.gif width=3 height=5 /imgsrc=images/jt_red.gifwidth=3 height=5 / asp:HyperLink ID=hlRootCategory CssClass=dh runat=serverCategory/asp:HyperLink /div /ItemTemplate FooterTemplate /div /FooterTemplate/asp:Repeater这里没有使用数据源控件。而是在后台动态绑定的数据。protected void Page_Load(object sender, EventArgs e) {DataSet ds = new Aricc.ooxx.BLL.Category().GetList(parentid=0);CategoryList.DataSource = ds;CategoryList.DataBind(); }protected void CategoryList_ItemDataBound(object sender, RepeaterItemEventArgs e) {DataRowViewdrv = (DataRowView)e.Item.DataItem;HyperLink link = (HyperLink)e.Item.FindControl(hlRootCategory);if (link != null) {link.Text = drv[categoryname].ToString();link.NavigateUrl = ../search.aspx?c= + drv[id].ToString();ListInnerCategory(e.Item, int.Parse(drv[id].ToString())); } }看到那个ListInnerCategory方法了吗?它就是递归显示子类数据方法。在这个方法里会动态的创建Repeater控件,并绑定相应的数据。要动态创建Repeater控件,必须要定义Template。用于对Repeater的ItemTemplate进行赋值。而这个Template需要是实现了ITemplate接口的一个类的实例。那么下面我们首先定义这样的一个模板类public class CategoryTemplate : ITemplate { #region ITemplate成员privateintcurrentLevel;publicCategoryTemplate(int level) {currentLevel = level; }public void InstantiateIn(Control container) {HyperLink link = new HyperLink(); link.ID = innerLink;HtmlGenericControl div = new HtmlGenericControl();div.TagName = div;div.Attributes.Add(style, line-height:30px;text-indent: + (currentLevel * 20) + px;); div.ID = innerDiv;div.Controls.Add(link);container.Controls.Add(div); } #endregion}接下来是ListInnerCategory的定义及相应的事件处理程序privateintcurrentLevel = 0;private void ListInnerCategory(RepeaterItem item, int ID) {if (new

文档评论(0)

1亿VIP精品文档

相关文档