Repeater控件的基本使用是怎样,如何对数据绑定
Admin 2022-08-10 群英技术资讯 297 次浏览
在aspx文件中加入Repeater 控件,在<ItemTemplate></ItemTemplate>包含的范围里加入自己控制的代码,需要替换的变量使用<%# Eval("SellerName")%>;注意两侧的引号。
.aspx:
<asp:Repeater ID="SellerRpt" runat="server"> <ItemTemplate> <li><a href='<%# Eval("SellerName")%>' target="_blank"> <%# Eval("ComName")%></a></li> </ItemTemplate> </asp:Repeater>
对应的后台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函数的执行步骤,优化页面解析时间:
<%# ((DataRowView)Container.DataItem)["SellerName"]%>替换<%# Eval("SellerName")%>
如果数据源是ArrayList,并且ArrayList为一列string数组,则可不用写出列名:
.aspx:
<asp:Repeater ID="topAdHintRpt" runat="server"> <ItemTemplate> <asp:Label ID="BarLabel" CssClass="bar" runat="server" Text="|"></asp:Label> <a href="#" rel="external nofollow" ><span> <%#Container.DataItem%></span></a> </ItemTemplate> </asp:Repeater>
.cs:
ArrayList alterText; AdDA.GetIndexTopList(out alterText); topAdHintRpt.DataSource = alterText; topAdHintRpt.DataBind();
某些情况下,数据库中检索出来的数据并不适合直接显示出来,想要适当处理后显示(eg:日期的格式,字符串长度的控制),可使用标签来占位,在onitemdatabound函数中自行控制:
.aspx:
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="ProRpt_ItemDataBound"> <ItemTemplate> <asp:Label ID="colinDate" runat="server" Text=""></asp:Label> </ItemTemplate> </asp:Repeater>
.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的嵌套,这里需要自行控制2层数据源的数据绑定:
.aspx:
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="ProRpt_ItemDataBound"> <ItemTemplate> <asp:Repeater ID="ParaRpt" runat="server" OnItemDataBound="ParaRpt_ItemDataBound"> <ItemTemplate> <asp:Label ID="bar" CssClass="bar" runat="server" Text="|"></asp:Label> <span class="para"> <%# Eval("Name")%>: <%# Eval("Value")%></span> </ItemTemplate> </asp:Repeater> </ItemTemplate> </asp:Repeater>
.cs:
protected void ProRpt_ItemDataBound(object sender, RepeaterItemEventArgs e) { //判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate, //HeaderTemplate,,ItemTemplate,SeparatorTemplate if (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(); } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在做web开发时,我们会经常遇到表单验证的需求。对新手来说,掌握表单验证对于理解字符串处理以及正则表达式都有很大的帮助。这篇文章就主要介绍,原生介绍实现表单验证功能。
最近因为基础设施调整,需要进行harbor镜像仓库的迁移,主要是旧版本很老了,不想使用,直接打算部署新的,原以为直接使用复制功能就可以,但是发现版本差异太大,直接失败,本打算使用中间版本过度进行迁移,但是需要测试,好多功能,而且配置有点费事,尽管官方提供了升级说明,但是没敢用,就怕出故障restapi请求流程还好harbor提供了restapi,还算比较全,proj
在JS中,我们经常会遇到原型。字面上的意思会让我们认为,是某个对象的原型,可用来继承。但是其实这样的理解是片面的,下面通过本文来了解原型与原型链的细节,再顺便谈谈继承的几种方式。
本篇文章带大家了解一下Angular中的路由配置,简单介绍一下预加载配置、懒加载配置,希望对大家有所帮助!
react怎样捕获异常?对新手来说,常常可能会出现代码出错的情况,但其实出错并不可怕,关键是怎么处理。一下朋友对于react的应用的错误捕捉可能不是很了解,对此,这篇文章就给大家介绍一下,对帮助大家除了代码错误有一定的帮助,需要的朋友可以参考。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008