首先我们先来了解一下实现以上功能会涉及到的一些知识。以MSND为参考。
- RepeaterItem对象表示Repeater控件中的项,如标题部分、脚注部分或数据项。
Repeater控件的数据项存储在RepeaterItemCollection对象中,通过使用Repeater控件的Items属性可以访问该对象。
可以使用RepeaterItem对象以编程方式访问Repeater控件中某项的属性。
MSDN示例分析
<%@ Page Language="C#"AutoEventWireup="True"%>
<%@ Import Namespace="System.Data"%>
<html>
<head>
<script language="C#"runat="server">
void Page_Load(Object Sender, EventArgs e)
{
if(!IsPostBack)
{
ArrayList values =new ArrayList();
values.Add(newPositionData("Item 1","$6.00"));
values.Add(newPositionData("Item 2","$7.48"));
values.Add(newPositionData("Item 3","$9.96"));//为Repeater准备数据,核心步骤,只有Repeater中已经绑定了数据才
//可能获取到需要的项和控件
Repeater1.DataSource = values;
Repeater1.DataBind();
}
}
void Button_Click(Object Sender, EventArgs e)
{
Label1.Text ="The Items collection contains: <br>";
foreach(RepeaterItem item in Repeater1.Items)
{ //读取对应项的值
Label1.Text += ((DataBoundLiteralControl)item.Controls[0]).Text +
"<br>";//获取控件
Label2.Text += ((Label)item.Controls[0].FindControl("lable2")).Text +
"<br>";
}
}
public class PositionData
{
private string item;
private string price;
public PositionData(string item,string price)
{
this.item = item;
this.price = price;
}
public string Item
{
get { return item; }
}
public string Price
{
get{ return price; }
}
}
</script>
</head>
<body>
<form runat=server>
<h3>Repeater Example</h3>
<p>
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
<table border=1>
<tr>
<td><b>Item</b></td>
<td><b>Price</b></td><td><b>Label</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td> <%# DataBinder.Eval(Container.DataItem,"Item") %> </td>
<td> <%# DataBinder.Eval(Container.DataItem,"Price") %> </td>//这里我们添加一个服务器端测试控件
<td><asp:Label ID="lable2" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "Price") %>'></asp:Label></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p>
<asp:Button id=" Button1"Text="Display Items in Repeater" OnClick="Button_Click" runat="server"/>
<br><br>
<asp:Label id="Label1" runat="server"/>
</form>
</body>
</html>
Repeater控件中获取值和控件
最新推荐文章于 2021-03-03 17:51:26 发布
之前发过一篇博文,涉及到了在GRIEVIEW中捕获子控件的方法。
奈何GRIDVIEW过于庞大,在追求效率的今天显得过于笨重。
正好有在Repeater中捕获子控件的需求,于是在查阅了相关文档和几经失败尝试之后得出了下面的一些经验和收获与大家分享。
总结:
在数据绑定的前提下,获取Repeater的项和子控件才能成为可能