First of all, in the markup, use the Text property of the label, do not put the databinder.Eval in
<asp:Label ..> do not put content here </asp:Label>
In the data bit element, events first detect the control in which the template is.
follow this example:
Markup:
<asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound"> <HeaderTemplate> </HeaderTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("content") %>'></asp:Label> <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton> </ItemTemplate> <AlternatingItemTemplate></AlternatingItemTemplate> <SeparatorTemplate></SeparatorTemplate> </asp:Repeater>
Source:
WITH#:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item) { Label lbl = (Label)e.Item.FindControl("Label1"); LinkButton link = (LinkButton)e.Item.FindControl("LinkButton1"); link.PostBackUrl = "abcd/" + lbl.Text; } }
VB.Net:
Protected Sub Repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) If e.Item.ItemType = ListItemType.Item Then Dim lbl As Label = DirectCast(e.Item.FindControl("Label1"), Label) Dim link As LinkButton = DirectCast(e.Item.FindControl("LinkButton1"), LinkButton) link.PostBackUrl = "abcd/" + lbl.Text End If End Sub
source share