Hey,
Im trying to work out why a button which is within a repeater and update panel will not execute.
I have to following front end code:-
<!-- start parent repeater -->
<asp:Repeater ID="catlist" runat="server" onitemcommand="catlist_ItemCommand"
onitemcreated="catlist_ItemCreated" onitemdatabound="catlist_ItemDataBound">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblCommentID" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem, "CID") %>'></asp:Label>
<div class="wall-container">
<div class="wall-left">
<a href="<%# "user-wall.aspx?ID=" + Eval("UID") %>"><asp:Image ID="Image4" ImageUrl='<%# string.Format("~/avatars/{0}", Eval("Avatar")) %>' runat="server" Width="55" Height="55" BorderWidth="0px"/></a>
</div>
<div class="wall-right">
<p><a href="<%# "user-wall.aspx?ID=" + Eval("UID") %>"><%# DataBinder.Eval(Container.DataItem, "Fname") %></a>
- <%# DataBinder.Eval(Container.DataItem, "Comment") %>
<br />
<small><%# DataBinder.Eval(Container.DataItem, "Added") %></small>
</p>
<div class="comments">
<!-- start child repeater -->
<asp:repeater id="childRepeater" runat="server">
<itemtemplate>
<asp:Label ID="Label4" runat="server" Text="Label" Visible="false"></asp:Label>
<div style="height:auto;margin-bottom:12px">
<a href="<%# "user-wall.aspx?ID=" + Eval("cUID") %>"><asp:Image ID="Image5" runat="server" ImageUrl='<%# string.Format("~/avatars/{0}", Eval("cAvatar")) %>' runat="server" Width="45px" Height="45px"/></a>
<p><a href="<%# "user-wall.aspx?ID=" + Eval("cUID") %>"><%# DataBinder.Eval(Container.DataItem, "cFname") %></a>
- <%# DataBinder.Eval(Container.DataItem, "cComment") %>
<br />
<small><%# DataBinder.Eval(Container.DataItem, "cAdded") %></small>
</p>
</div>
</itemtemplate>
</asp:repeater>
<!-- end child repeater -->
[B] <asp:TextBox ID="TextBox2" runat="server" CssClass="text-comment" onfocus="this.value='';"
onblur="if (this.value=='') this.value='Write a comment';"
value="Write a comment" ForeColor="#A79090"></asp:TextBox>
<asp:Button ID="Btn_ex" runat="server" Text="Submit" CommandArgument='<%# Eval("CID") %>'/> [/B]
The code in bold is what i am referring to. Now i want to perform an action when the button is clicked. I have the code below:-
protected void catlist_ItemCreated(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Button btn = e.Item.FindControl("Btn_ex") as Button;
if (btn != null)
{
btn.Click += new EventHandler(btn_Click);
}
}
}
This defines the button and below is where i perform my execution:-
protected void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
string CID = btn.CommandArgument.ToString();
RepeaterItem item = btn.NamingContainer as RepeaterItem;
if (item != null)
{
TextBox tbox = item.FindControl("TextBox2") as TextBox;
if (tbox != null)
{
// PERFORM DATABASE INSERTION HERE!!
}
}
}
}
But when i click the button it doesnt do anything.
Can anyone see why this is?
Regards
Billy
Happy New Year