ASP.NET repeater控件传值
repeater控件里边有一个Button ,想要在点击的时候把repeater控件中该Button对应列的一个值读出来,怎么才能实现呢?
repeater控件里边有一个Button ,想要在点击的时候把repeater控件中该Button对应列的一个值读出来,怎么才能实现呢?
答案:.aspx
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# (Container.DataItem as User).Id %>
<asp:Label ID="lblName" runat="server" Text='<%# (Container.DataItem as User).Name %>'></asp:Label>
<asp:Button ID="btnSelect" runat="server" Text="选择" OnClick="btnSelect_Click" />
</ItemTemplate>
</asp:Repeater>
<asp:Literal ID="lblMsg" runat="server"></asp:Literal>
.aspx.cs
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Web.UI.WebControls;
public partial class RepeaterDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
private void BindData()
{
List<User> list = new List<User>();
list.Add(new User { Id = 1, Name = "aa" });
list.Add(new User { Id = 2, Name = "bb" });
list.Add(new User { Id = 3, Name = "cc" });
list.Add(new User { Id = 4, Name = "dd" });
Repeater1.DataSource = list;
Repeater1.DataBind();
}
protected void btnSelect_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
//获得当前项
RepeaterItem item = btn.NamingContainer as RepeaterItem;
//通过控件获得
lblMsg.Text = (item.FindControl("lblName") as Label).Text;
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
上一个:ASP.NET当我作了一个母版页1.master后,用另外一个母版页2master引用这个母版页的类容,然后用
下一个:在ASP.Net中,Gridview控件 用DataSet填充数据源后,就不能够执行删除操作了,跪求解决方法,分不是问题!