網站首頁 編程語言 正文
Repeater基礎
在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,并且ArrayList為一列string數組,則可不用寫出列名:
.aspx:
<asp:Repeater ID="topAdHintRpt" runat="server">
<ItemTemplate>
<asp:Label ID="BarLabel" CssClass="bar" runat="server" Text="|"></asp:Label>
<a href="#" ><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的顯示
對于某些復雜的顯示邏輯,需用用到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();
}
}
原文鏈接:https://www.cnblogs.com/me115/archive/2011/04/09/2010682.html
相關推薦
- 2022-10-25 idea resources和webapp下面的文件不編譯怎么辦?
- 2022-07-08 PyHacker編寫指南引用Nmap模塊實現端口掃描器_python
- 2022-10-19 react-redux多個組件數據共享的方法_React
- 2022-06-29 C語言實例講解選擇語句的使用_C 語言
- 2022-03-30 py3nvml實現GPU相關信息讀取的案例分析_python
- 2022-08-30 cvc-complex-type.2.4.a: 發現了以元素 ‘base-extension‘ 開頭
- 2023-01-10 Flutter?SystemChrome使用方法詳解_Android
- 2023-07-14 echarts圖表進度條類型圖
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支