Ma page contient un répéteur chargé de données de manière asynchrone au fur et à mesure que les données deviennent disponibles, en utilisant un UpdatePanel pour gérer les requêtes asynchrones.ASP.net - LinkButtons dans un répéteur dans un UpdatePanel ne déclenche aucune publication
La page contient quelque chose d'un peu comme ceci:
<asp:UpdatePanel ID="DataUpdatePanel" runat="server">
<ContentTemplate>
<table>
<asp:Repeater ID="RepeaterBlock" runat="server">
<HeaderTemplate><thead><tr><th>Name</th><th>Status</th><th class="empty"></th></tr></thead></HeaderTemplate>
<ItemTemplate><tr>
<td><a class="link" href="Detail.aspx?item=<%# DataBinder.Eval(Container.DataItem, "Name") %>"><%# DataBinder.Eval(Container.DataItem, "Name") %></a>
</td>
<td><%# DataBinder.Eval(Container.DataItem, "Status") %></td>
<td class="no-border">
[<asp:LinkButton CommandName='Schedule' CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Name") %>' ID="ScheduleButton" runat="server" CausesValidation="false" >Schedule</asp:LinkButton>]
</td>
</tr></ItemTemplate>
</asp:Repeater>
</table>
</ContentTemplate>
</asp:UpdatePanel>
Le problème étant que le LinkButton ne semble pas déclencher une publication de tout kind- il n'y a pas de réponse visible en cliquant sur et mettre une pause point sur l'écouteur d'événement dans le codebehind, il n'est jamais déclenché.
J'ai essayé d'ajouter manuellement un déclencheur comme celui-ci:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ScheduleButton" />
</Triggers>
Mais malheureusement becausee les contrôles sont dans le ContentTemplate il se bloque si je tente de le faire.
Une autre avenue que j'ai exploré est de les ajouter explicitement dans le code-behind:
RepeatData.DataBind();
RepeatData.ItemCommand += new RepeaterCommandEventHandler(RepeatData_ItemCommand);
UpdateScripts.RegisterAsyncPostBackControl(FindControlRecursive(RepeatData, "SchedulButton"));
La méthode FindControlRecursive se comporte comme FindControl seulement il fait trouve des contrôles.
Cela ne plante pas, mais cela n'entraîne pas l'activation des LinkButtons. Est-ce que quelqu'un peut suggérer ce que je dois faire pour les obliger à poster comme je le demande?
Edit: À l'origine, j'avais cette page qui fonctionnait sans le UpdatePanel et cela fonctionnait bien, avec plus de données, il a commencé à expirer, donc j'avais besoin d'obtenir les données de manière asynchrone. C'est quand j'ai fait ce changement que les linkbuttons ont cessé de fonctionner.
quel événement a un gestionnaire inscrit? Je ne vois aucun spécifié dans votre balisage. – lincolnk
Ce n'est pas dans le balisage - c'est pourquoi je l'ajoute au Répéteur dans la deuxième ligne de l'extrait de CodeBehind là. – glenatron