当前位置:编程学习 > C#/ASP.NET >>

ASP.NET repeater控件传值

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填充数据源后,就不能够执行删除操作了,跪求解决方法,分不是问题!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,