Exemplo de como pegar o LinkButton clicado em um Repeater usando o OnItemCommand, e o CommandArgument do LinkButton.
default.aspx
<asp:Repeater ID="repProdutos" OnItemCommand="ItemCommand" runat="server">
<ItemTemplate>
<div>
<strong><%# Eval("value") %></strong>
<asp:LinkButton ID="lnkComprar" runat="server" Text="Comprar"
CommandArgument='<%# Eval("key") %>' CommandName="lnkComprar" />
</div>
</ItemTemplate>
</asp:Repeater>
default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Dictionary<int, string> dicProdutos = new Dictionary<int, string>();
dicProdutos.Add(1, "camisa");
dicProdutos.Add(2, "calça");
dicProdutos.Add(3, "sapato");
repProdutos.DataSource = dicProdutos;
repProdutos.DataBind();
}
}
protected void ItemCommand(Object Sender, RepeaterCommandEventArgs e)
{
if (((LinkButton)e.CommandSource).CommandName == "lnkComprar")
Response.Write(((LinkButton)e.CommandSource).CommandArgument);
}