62,074
社区成员
发帖
与我相关
我的任务
分享
<asp:Repeater ID="Repeater1" runat="server" >
<HeaderTemplate>
<table >
<tr>
<th >
所属部门
</th>
<th >
部门成员
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr >
<td >
<%# DataBinder.Eval(Container.DataItem, "DepName")%>
</td>
<td >
<%# DataBinder.Eval(Container.DataItem, "Name")%>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</cc1:Repeater>
foreach (RepeaterItem item in this.Repeater1.Items)
{
item.FindControl("控件id") as 控件类型
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="rp" runat="server" onitemcreated="rp_ItemCreated">
<AlternatingItemTemplate>
<%#Eval("ID") %>,
</AlternatingItemTemplate>
<ItemTemplate>
<%#Eval("ID") %>,
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>
private DataTable GetDT()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(Int32)));
DataRow dr;
for (int i = 0; i < 5; i++)
{
dr = dt.NewRow();
dr[0] = i;
dt.Rows.Add(dr);
}
return dt;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rp.DataSource = GetDT();
rp.DataBind();
}
}
protected void rp_ItemCreated(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = e.Item.DataItem as DataRowView;
if (drv != null)
{
object obj = drv[0] ?? "0";
int id;
int.TryParse(obj.ToString(), out id);
switch (id)
{
case 1:
drv[0] = 1001;
e.Item.DataItem = drv;
break;
case 2:
drv[0] = 1002;
e.Item.DataItem = drv;
break;
}
}
}
}
按照楼主给出的Repeater,除了用FindControl遍历找出来比较容易外,其他都比较困难吧
当Repeater绑定完数据后,可以下个断点,看下他们怎么存储数据的就知道了
按照楼主给的Repeater,也可以增加个Button事件,用下面的代码看下
protected void Button1_Click(object sender, EventArgs e)
{
foreach (RepeaterItem item in this.Repeater1.Items)
{
Response.Write(((System.Web.UI.DataBoundLiteralControl)(item.Controls[0])).Text+"<br>");
}
}