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 :

Erreur d'accès à certains éléments depuis le codebehind


Sujet :

ASP.NET

  1. #1
    Membre du Club Avatar de Yosko
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Points : 64
    Points
    64
    Par défaut Erreur d'accès à certains éléments depuis le codebehind
    Salut à tous,

    J'ai développé hier un code qui avait réussi à compiler, et qui fonctionnait. Aujourd'hui, alors que je ne me rappelle pas avoir changé quoi que ce soit, cela refuse de passer.

    Mon code ASP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <%@ Page Title="Mon Appli" Language="C#" MasterPageFile="~/MaMasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <%@ MasterType VirtualPath="~/MaMasterPage.master" %>
     
    <asp:Content ID="MonContent" ContentPlaceHolderID="MonContentPlaceHolder" Runat="Server">
        <div class="content_detail" visible="false" id="MonWrapper" runat="server">
            <div class="welcome">
                <div>
                    Blablabla
                </div>
                <ul>
                    <li id="MaLi1" runat="server">
                        Blablabla
                    </li>
                    <li id="MaLi2" runat="server">
                        Blablabla
                    </li>
                </ul>
            </div>
        </div>
    </asp:Content>
    Et mon code behind simplifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.MonWrapper.Visible = false;
            this.MaLi1.Visible = false;
            this.MaLi2.Visible = false;
        }
    }
    Pour chacun des 3 éléments, j'obtient l'erreur suivante :
    '_Default' ne contient pas une définition pour 'MonWrapper' et aucune méthode d'extension 'MonWrapper' acceptant un premier argument de type '_Default' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?) D:\MonProjet\Default.aspx.cs 26 18 D:\MonProjet\
    EDIT : rien à voir, mais quand je créé un topic ou quand je demande à le prévisualiser, j'obtiens une erreur (qui n'empêche pas de poster le topic, visiblement). C'est normal ?

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    vérifier la référence de div dans la page Default.aspx.designer.cs.
    Tu trouveras une chose que rassemble à ça sinon il faut que tu l'ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected global::System.Web.UI.HtmlControls.HtmlGenericControl MonWrapper;

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    Il te manque surement un using et vue que tu ne les as pas mis dans le post...

  4. #4
    Membre du Club Avatar de Yosko
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Points : 64
    Points
    64
    Par défaut
    Tout d'abord merci de vos réponses.

    @aguetat : je n'ai pas de Default.aspx.designer.cs, seulement Default.aspx et Default.aspx.cs... Et c'est la première fois que j'entends parler d'un truc comme ça.

    @tortuegenie : autant pour moi. Comme j'ai les même Using que dans mes autres pages, je ne m'était pas trop posé la question. Les voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.Security;

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    Citation Envoyé par Yosko Voir le message
    @aguetat : je n'ai pas de Default.aspx.designer.cs, seulement Default.aspx et Default.aspx.cs... Et c'est la première fois que j'entends parler d'un truc comme ça.
    Car t'as utilisé un site web et non pas une application web. Si ça existe !
    Et si tu essaye de recréer ta page ?...

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    Oui essaye en recreant une nouvelle page.

    Es-tu vraiment sur que tu as besoin de ceci sur ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ MasterType VirtualPath="~/MaMasterPage.master" %>
    ?

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    C'est une déclaration d'utilisation d'un Master Page, ça rien avoir avec le problème rencontré
    Citation Envoyé par tortuegenie Voir le message
    Oui essaye en recreant une nouvelle page.

    Es-tu vraiment sur que tu as besoin de ceci sur ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ MasterType VirtualPath="~/MaMasterPage.master" %>
    ?

  8. #8
    Membre du Club Avatar de Yosko
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Points : 64
    Points
    64
    Par défaut
    @aguetat : aaaaah ok. Oui effectivement, c'est un projet "site web" pas "application web". J'exprimais juste mon ignorance crasse
    @tortuegenie : je crois. C'était présent déjà partout dans l'application (que je n'ai pas développé). Si je l'enlève, j'obtiens toujours les mêmes erreurs.

    J'ai essayé de suivre votre conseil et de recréer une page.
    Pour ça, j'ai d'abord renommé l'ancienne. Une fois renommée (nom des fichiers aspx et cs, ainsi que le nom de la partial class, et sa mention dans le inherits de l'aspx), le truc s'est mis à fonctionner O.o
    J'ai recréé de zéro une page Default, avec le même code, et ça ne foncionne pas plus.
    Je ne comprend pas ce qui les différencie, à part le nom... Malgré tout, ça me laisse une possibilité : vu que la page "par défaut" de mon application n'est pas cette "Default.aspx", je peux très bien la renommer partout où elle est mentionnée, et ainsi avoir un truc qui marche. Je n'aurai pas compris le problème, mais je l'aurai contourné.

    Du coup, dite moi si je me trompe, mais la partial class d'une page doit avoir le même nom que le fichier aspx, sauf dans le cas de la page "Default", dont la partial class porte le nom "_Default", c'est bien ça ?.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 20
    Points : 24
    Points
    24
    Par défaut Partial class
    Normalement non, il n'y a pas de lien entre le nom du fichier et le nom de la classe partielle.

    Tu peux avoir 2 fichiers "maclass.cs" et "maclass.extend.cs" et avoir le même nom de classe partielle pour les 2 : public partial Maclass. Le cas particulier de default est que c'est un mot réservé. Par exemple, tu l'utilise dans un switch /case pour gérer ce qui se passe si tu ne tombe dans aucun cas. Si tu devais appeler ta page avec un autre nom réserbé, tu aurais probablement à faire la même chose.

    Ton problème vient peut-être du fait que tu ne précise pas dans quel namespace tu es :
    Inherits="MonNamescpace._Default" plutôt que Inherits="_Default"

  10. #10
    Membre du Club Avatar de Yosko
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par chvialat Voir le message
    Le cas particulier de default est que c'est un mot réservé.
    Oui, c'est un peu la réponse à laquelle je m'attendais.

    Citation Envoyé par chvialat Voir le message
    Ton problème vient peut-être du fait que tu ne précise pas dans quel namespace tu es :
    Inherits="MonNamescpace._Default" plutôt que Inherits="_Default"
    Je croyais que les sites web n'utilisaient pas de namespace, et qu'on n'en trouvait que dans les projets "application web" ? Ce n'est pas une notion que je connais donc je peux me tromper.
    Toujours est-il que pour aucune de mes autres page il n'y a de namespace indiqué comme dans ton exemple...

    Vu que je suis parvenu à contourner le problème, je vais passer le sujet en résolu. Et dans tous les cas, merci pour votre aide (et pour m'avoir conseillé de recréer la page).

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 20
    Points : 24
    Points
    24
    Par défaut appli web
    Effectivement, tu as raison le namespace a du sens avec l'appli web.

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

Discussions similaires

  1. [MySQL-5.5] Erreur d'accès à certaines tables
    Par lemirandais dans le forum Administration
    Réponses: 0
    Dernier message: 17/06/2014, 10h49
  2. accès aux éléments d'un numpy array 2d depuis du code C par double indice
    Par atalon1 dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 17/10/2011, 13h10
  3. [POO] acces a certaines valeurs depuis ma classe
    Par nabab dans le forum Langage
    Réponses: 5
    Dernier message: 10/10/2008, 17h56
  4. [WPF] Accés à un élément XAML depuis C#
    Par UNi[FR] dans le forum C#
    Réponses: 6
    Dernier message: 07/09/2007, 15h07
  5. Réponses: 1
    Dernier message: 13/07/2005, 15h51

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