Any body with an idea please help. I am trying to ajaxify a control that will be inside 2 nested repeaters and it doesn't work. Please see code below.
From User Control:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AjaxTest.ascx.cs" Inherits="AjaxTest" %>
<%
@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"Namespace="System.Web.UI" TagPrefix="asp" %>
<asp:LinkButton ID="lnkTrigger" runat="server" Text="Trigger" CommandName="trigger"></asp:LinkButton>
<asp:Label ID="lblUpdate" runat="server"></asp:Label>
From aspx page:
<%@ Register src="AjaxTest.ascx" tagname="ajaxTest" tagprefix="atest" %>
<%
@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %><table>
<
asp:Repeater id="rptGameDay" runat="server" EnableViewState="false">
<ItemTemplate>
<asp:Repeater ID="repTriggers" runat="server">
<HeaderTemplate>
<tr>
</HeaderTemplate>
<ItemTemplate>
<td valign="top" align="left">
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="conditional">
<ContentTemplate>
<atest:AjaxTest id="ajaxTest1" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</td>
</ItemTemplate>
<SeparatorTemplate>
</tr><tr>
</SeparatorTemplate>
<FooterTemplate>
</tr>
</FooterTemplate></asp:Repeater>
</ItemTemplate>
</
asp:Repeater>
</
table>
From Page Load Method:
List<int> intList = new List<int> {1};for(int i=0; i<1; i++)
{
rptGameDay.DataSource = intList;
rptGameDay.ItemDataBound += rptGameDay_ItemDataBound;
rptGameDay.DataBind();
}
private void rptGameDay_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) return;
Repeater repTriggers = (Repeater)e.Item.FindControl("repTriggers");repTriggers.ItemCommand += new RepeaterCommandEventHandler(repTriggers_ItemCommand);
repTriggers.DataSource =
new int[3] { 0, 1, 2 };
repTriggers.DataBind();
}
protected void repTriggers_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
AjaxTest ajaxTest = (AjaxTest)e.Item.FindControl("ajaxTest1");if (e.CommandName == "trigger")
{
LinkButton btn = e.CommandSource as LinkButton;if (btn != null)
{
((Label)ajaxTest.FindControl("lblUpdate")).Text = "Update triggered by " + btn.ID + e.Item.ItemIndex.ToString();
}
}
}
When I have the control inside one repeater it works. Very odds. Maybe there is something I am not doing. Can someone please help.
Thanks!