none
Comment faire pour enregistrer l’évènement d’un contrôle dans UserControl comme déclencheur d’un UpdatePanel RRS feed

  • Discussion générale

  • La meilleure solution consiste à traiter l'événement du contrôle comme un événement personnalisé du contrôle utilisateur. Puis enregistrer l'événement personnalisé de l'objet UserControl comme le déclencheur de l’UpdatePanel.

     

      1. Définissez un délégué personnalisé et un événement sur l'objet UserControl

      2. Déclenchez l'événement personnalisé

      3. Enregistrez l'événement personnalisé de l'objet UserControl comme le déclencheur de l’UpdatePanel comme un contrôle normal

     

    Voici un exemple :

     

     

    <%@ Control Language="C#" ClassName="TestUc" %>
    <script runat="server">
      public delegate void ClickEventHandler(object sender, CommandEventArgs e);
      public event ClickEventHandler TestCustomEvent;
      protected void lb_Command(object sender, CommandEventArgs e)
      {  // personalliser l'evenement Command
        if (TestCustomEvent != null) TestCustomEvent(this, e);
      }
    </script>
    <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument="LinkButton1" OnCommand="lb_Command">LinkButton1</asp:LinkButton>
    <asp:LinkButton ID="LinkButton2" runat="server" CommandArgument="LinkButton2" OnCommand="lb_Command">LinkButton2</asp:LinkButton>

     

     

    <%@ Page Language="C#" %>
    <%@ Register src="TestUc.ascx" TagName="TestUc" TagPrefix="uc1" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
      protected void TestUc1_TestCustomEvent(object sender, CommandEventArgs e)
      {
        Label1.Text = DateTime.Now.ToString();
      }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
      <title>Trigger UpdatePanel</title>
    </head>
    <body>
      <form id="form1" runat="server">
        <div>
          <asp:ScriptManager ID="ScriptManager1" runat="server">
          </asp:ScriptManager>
          <uc1:TestUc id="TestUc1" runat="server" OnTestCustomEvent="TestUc1_TestCustomEvent">
          </uc1:TestUc>
          <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
              <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            </ContentTemplate>
            <Triggers>
              <asp:AsyncPostBackTrigger ControlID="TestUc1" EventName="TestCustomEvent" />
            </Triggers>
          </asp:UpdatePanel>
        </div>
      </form>
    </body>
    </html>

     

     

    Pour plusieurs tips&tricks sur ASP.NET, visitez la page Foire aux Questions – ASP.NET

     

      

     
    Appel à contribution ! http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/bd974e0e-5519-4122-b8fc-3b998207c34f
    lundi 10 mai 2010 14:30
    Modérateur