ASP.NET实现Repeater控件的数据绑定
Repeater基础
在aspx文件中加入Repeater 控件,在
.aspx:
对应的后台cs中,在页面加载处加入数据绑定的代码:
protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){DataTable dt = SellerDA.GetTopHotSellers(9); SellerRpt.DataSource = dt; SellerRpt.DataBind(); }}
aspx中"SellerName"、"ComName"为DataTable 中的列名。
优化
直接使用DataItem可减少Eval函数的执行步骤,优化页面解析时间:
替换
ArrayList数据源
【ASP.NET实现Repeater控件的数据绑定】如果数据源是ArrayList,并且ArrayList为一列string数组,则可不用写出列名:
.aspx:
.cs:
ArrayList alterText; AdDA.GetIndexTopList(out alterText); topAdHintRpt.DataSource = alterText; topAdHintRpt.DataBind();
处理后显示
某些情况下,数据库中检索出来的数据并不适合直接显示出来,想要适当处理后显示(eg:日期的格式,字符串长度的控制),可使用标签来占位,在onitemdatabound函数中自行控制:
.aspx:
.cs:
protected void ProRpt_ItemDataBound(object sender, RepeaterItemEventArgs e){if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){DataRowView rowv = (DataRowView)e.Item.DataItem; //找到分类Repeater关联的数据项 string strDate = rowv["clDate"].ToString(); Label DateLB = e.Item.FindControl("colinDate") as Label; DateLB.Text = strDate.Substring(0, 10); }}
嵌套Reapeter的显示
对于某些复杂的显示逻辑,需用用到Reapeter的嵌套,这里需要自行控制2层数据源的数据绑定:
.aspx:
:
.cs:
protected void ProRpt_ItemDataBound(object sender, RepeaterItemEventArgs e){//判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,//HeaderTemplate,,ItemTemplate,SeparatorTemplateif (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){Repeater rep = e.Item.FindControl("ParaRpt") as Repeater; //找到里层的repeater对象DataRowView rowv = (DataRowView)e.Item.DataItem; //找到分类Repeater关联的数据项 string str = Convert.ToString(rowv["Pro_Content"]); //获取填充子类的内容rep.DataSource = Product.FillPara(str); rep.DataBind(); }}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- 绕过黑名单检查实现文件上传1 ——合天网安实验室学习笔记
- java|互联网公司都怎么实现分页的,拿 MySQL 使劲Limit()
- jsp+ssm+mysql实现的租车车辆管理系统汽车租赁
- ssm+mysql实现零食商城系统(电商购物)
- 用 ElasticSearch 实现 “猜你喜欢” 智能推荐
- Redis|redis+lua 实现分布式令牌桶,高并发限流
- redis|redis+lua实现分布式限流
- 产品新人如何实现快速成长系列一(熟悉必备工具)
- BigDecimal|BigDecimal 拆分 Java实现微信发红包算法
- 多人共用一个Linux用户|多人共用一个Linux用户, 实现Bash配置文件独立