IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[Débutant] ModalPopupExtender et MasterPage


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut [Débutant] ModalPopupExtender et MasterPage
    Bonjour,

    Je n'arrive pas à faire fonctionner un ModalPopupExtender d'AjaxControlToolkit avec les MasterPage, lorsque le TargetControlID du ModalPopupExtender ne se trouve pas dans le même ContentPlaceHolder que le ModalPopupExtender.

    Par exemple avec la page suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ Page Language="C#" MasterPageFile="~/Menu.master" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
     
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
     
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="SousMenu" Runat="Server">
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </asp:Content>
    <asp:Content ID="Content3" ContentPlaceHolderID="Contenu" Runat="Server">
        <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="Button1">
        </cc1:ModalPopupExtender>
    </asp:Content>
    J'ai le message d'erreur :
    Le TargetControlID de 'ModalPopupExtender1' n'est pas valide. Impossible de trouver un contrôle avec l'ID 'Button1'.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.InvalidOperationException: Le TargetControlID de 'ModalPopupExtender1' n'est pas valide. Impossible de trouver un contrôle avec l'ID 'Button1'.

    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

    Trace de la pile:

    [InvalidOperationException: Le TargetControlID de 'ModalPopupExtender1' n'est pas valide. Impossible de trouver un contrôle avec l'ID 'Button1'.]
    System.Web.UI.ExtenderControl.RegisterWithScriptManager() +326771
    System.Web.UI.ExtenderControl.OnPreRender(EventArgs e) +19
    AjaxControlToolkit.ExtenderControlBase.OnPreRender(EventArgs e) +59
    AjaxControlToolkit.ModalPopupExtender.OnPreRender(EventArgs e) +117
    System.Web.UI.Control.PreRenderRecursiveInternal() +80
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
    Comme d'après mes recherches je semble être le seul à avoir ce problème ce doit surement être quelque chose de simple, mais je ne trouve pas

    Merci d'avance pour toute aide.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Essaye de passer par le code-behind pour voir si tu récupères correctement le Button1 dans le PlaceHolder2.
    Supprime alors le TargetControlID dans la declaration de ta ModalPopup
    Et affecte le bouton par le code-behind.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut
    Désolé, j'avais oublié de le préciser, mais j'ai déjà essayé cette solution. J'ai le même message d'erreur

    Merci pour la suggestion.

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut
    c'est plutot normal.

    Il essai de récuperer le control avec le nom spécifié dans targetControlId.
    Il doit utiliser son arborescence de controls (ou son nom) pour le récup.

    En gros:
    il va chercher Content3_Button1

    Hors qu'il devrais chercher Content2_Button1.

    Il faudrais regarder comment est ce que c'est setter.
    Ou si on peux agir sur le nom complet du control a aller chercher.
    Si c'est fait en javascript ca va être galere.

    Mais pour qu'elles raisons tu le met dans des contentplaceholder différents?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut
    Citation Envoyé par gyzmau Voir le message
    Mais pour qu'elles raisons tu le met dans des contentplaceholder différents?
    Le Panel sur lequel agit le ModalPopupExtender se trouve dans la version complète dans un UpdatePanel. Si je met le ModalPopupExtender dans le même ContentPlaceHolder que le bouton, c'est le Panel qui n'est pas trouvé du coup

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut
    J'ai finalement trouvé une solution en utilisant un bouton caché et un bout de javascript comme expliqué sur cette page.
    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème de MasterPage
    Par beaudelaire dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 05/07/2011, 12h51
  2. Réponses: 2
    Dernier message: 05/11/2008, 14h23
  3. [Kylix] Le débutant en Kylix et Linux....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 10h37
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo