Repeater控件的基本使用是怎样,如何对数据绑定
Admin 2022-08-10 群英技术资讯 553 次浏览
在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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章我们来了解JavaScrip怎样判断回文数的相关内容,下文分享的示例是利用数组转为字符串数组,再用reserve()翻转数组,然后对于是否相等的方法来判断,下文我们来详细的了解看看实现思路及方法,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!
jQuery中怎样设置所有input失效?在实际的项目中,有时候我们血药设置文本框不可用,那么怎样才让全部的input失效呢?文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
这篇文章主要为大家详细介绍了Vue导入Echarts实现折线散点图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
我们在浏览网站时,经常会看到网站页面的侧边栏随着网站页面滑动而滚动,当滑动到banner部分,侧边栏就不在固定不动,而且还会有放回顶部的提示,那么这是如何实现呢?侧边栏也是前端开发比较经常遇到的需求,这篇文章就介绍如何用javascript实现一个简单固定侧边栏。
本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于number类型的相关知识,包括了number类型的常见误区背后原理以及解决方法等内容,下面一起来看一下,希望对大家有帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008