Comment créer un CallBack avec un UpdatePanel en asp.net ?

Si, comme moi, vous utilisiez un CallBack de l'entreprise ComponentArt et que vous voulez le remplacer par un composant natif en asp.net (C#), étant donné que componentart.com n'existe plus, voici comment procéder :


Dans la page .aspx :

- Ajouter cette ligne après la <form ... :

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

- Si vous avez des données à transmettre, insérer des champs TextBox, autant que vous en avez besoin avant la ligne </form> l'attribut MultiLine est utile pour faire passer des retours à la ligne:

<div style="display:none">
    <asp:TextBox ID="ParamUn" TextMode="MultiLine" type="text" runat="server"></asp:TextBox>
    <asp:TextBox ID="ParamDeux" TextMode="MultiLine" type="text" runat="server"></asp:TextBox>
    <asp:TextBox ID="ParamTrois" TextMode="MultiLine" type="text" runat="server"></asp:TextBox>
    <asp:TextBox ID="ParamQuatre" TextMode="MultiLine" type="text" runat="server"></asp:TextBox>
    <asp:TextBox ID="ParamCinq" TextMode="MultiLine" type="text" runat="server"></asp:TextBox>
    <asp:TextBox ID="ParamSix" TextMode="MultiLine" type="text" runat="server"></asp:TextBox>
</div> 

- Ajouter l'UpdatePanel au milieu de la page :

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="contenu" runat="server"></asp:Label>
        <div style="display:none">
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" />
        </div>
    </ContentTemplate>
</asp:UpdatePanel>
 

La ligne <asp:Label ID="contenu" est utile seulement si vous voulez un affichage en retour du CallBack, sinon elle peut-être enlevée. Le bouton est rendu invisible avec le div, ne pas changer.

- Ajouter dans la partie <head></head> :

<script type="text/javascript">
    function AllerRetour(un, deux) {
        document.getElementById("ParamUn").value = un;
        document.getElementById("ParamDeux").value = deux;
        
        ... mettre ici toutes les valeurs que vous voulez passer
    
        document.getElementById("Button1").click();
    }
</script>

La fonction AllerRetour() pourra être appelée depuis n'importe quel composant de la page par exemple <input type="Button" onclick="AllerRetour(2, 78);"/> ou <body onload="AllerRetour(2, 78);">, 2 et 78 sont des valeurs exemples on peut aussi passer du texte etc.

Dans la page aspx.cs :


- Ajouter un événement Button1_Click :


protected void Button1_Click(object sender, EventArgs e)
{
    try
    {
        contenu.Text = ParamUn.Text + " " + ParamDeux.Text;

    }

    catch {}

}


Si on ne veut pas de retour d'affichage dans contenu, on peut laisser vide l'événement Button1_Click.

Commentaires

Posts les plus consultés de ce blog

The vaccine is not the right technology

Le vaccin n’est pas la bonne technologie

Scénario d'une gestion durable de l'humanité imaginée par un informaticien