J'ai un gabarit qui contient un panneau de mise à jour. L'une des pages de l'application sur laquelle je travaille a un contrôle personnalisé avec des champs asp: textbox. Ce contrôle a également une grille de vue. Lorsqu'un bouton de liaison asp: pour une ligne est cliqué, l'événement OnRowCommand se déclenche et exécute correctement sa magie, dont une partie définit la propriété "Text" d'asp: textbox. Cela marche.Le contrôle ne reflète pas les mises à jour
Mon problème est que la mise à jour n'est pas reflétée dans l'interface utilisateur.
Le UpdatePanel:
<asp:ScriptManager ID="scriptManager" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="updPanel" runat="server">
<ContentTemplate>
[...more code...]
Le LinkButton:
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" CommandArgument='<%# Eval("ID")%>' CommandName="EDIT" runat="server">Edit</asp:LinkButton>
</ItemTemplate>
Le gestionnaire d'événements:
protected void RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "EDIT":
//stuff happens here
[ASP:Textbox].Text = [Result of stuff that happened];
^this is what isn't reflected on the page
break;
Je sais que je manque quelque chose avec le cycle de vie de la page, mais je m dessinant un blanc.
Oh mon dieu. Je l'ai moi-même vécu il y a quelques mois. Dans un 'ListView' il y a des' CommandName' réservés qui implémentent la fonctionnalité intégrée. Malheureusement, l'équipe de conception de MS n'a pas jugé bon de lancer une quelconque exception si vous définissiez un nom de commande égal à l'un d'eux, même si cela ne provoquait aucune action dans votre conception particulière. Il s'agissait d'un slapper sur le front que je n'ai pas compris avant d'avoir franchi le code source de MS pour voir pourquoi aucun événement n'était soulevé. Honnêtement, je ne sais pas pourquoi ils bloqueraient l'événement, même s'il fait quelque chose en interne. Très perturbant. –
Des conneries! Je ne serai pas en mesure de changer cela jusqu'à demain mais merci de poster! Si cela fonctionne, je vais revenir et "accepter" la réponse. Merci encore! – Chuck