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

  • Discussion générale

  • Pour cela, on peut tout d'abord définir une propriété personnalisée pour exposer l'ID de client d'un contrôle déclencheur masqué de l’UpdatePanel sur l'objet UserControl (dit "UserControlA"). Sur l'autre UserControl (dit "UserControlB"), on sera capables de déclencher l'événement click du contrôle déclencheur masqué.

    Voici les étapes spécifiques :

     

    1.   Définir une propriété personnalisée pour stocker l'ID de client d'un contrôle déclencheur masqué de l’UpdatePanel (la proprieté Button1clientID de l’UserControl  Gallery):

     

    <%@ Control Language="C#" ClassName="Gallery" %>
    <script runat="server">
      protected void Button1_Click(object sender, EventArgs e)
      {
        Label1.Text = DateTime.Now.ToString();
      }
      public string Button1clientID
      {
        get
        {
          return Button1.ClientID;
        }
      }
    </script>
     
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <div style="visibility: hidden">
          <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" UseSubmitBehavior="false" Text="Button" /></div>
      </ContentTemplate>
    </asp:UpdatePanel>

     

    2.   Définir une propriété personnalisée dans l’autre UserControl (la propreté Button1clientID de l’UserControl Upload) :

     

    <%@ Control Language="C#" ClassName="Upload" %>
    <script runat="server">
      private string buttonclientID = "";
      public string Button1clientID
      {
        set
        {
          buttonclientID = value;
        }
      }
    </script>

     

    3.   Definir Upload1.Button1clientID = Gallery1.Button1clientID dans page_Load :

     

    <script runat="server">
      protected void Page_Load(object sender, EventArgs e)
      {
        Upload1.Button1clientID = Gallery1.Button1clientID;
      }
    </script>

     

    4.   Lancer manuellement l’évènement Click du contrôle déclencheur masqué :

     

    <script type="text/javascript">
       function submitForm()
       {
         document.getElementById("<%=buttonclientID %>").click();
       }
    </script>
     
    <button onclick="javascript:submitForm();">Upload</button>

     

     

    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:53
    Modérateur