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 :

Appeler une fonction du CodeBehind depuis un webform avec page maître


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Appeler une fonction du CodeBehind depuis un webform avec page maître
    Bonjour,
    Voici donc l'épisode 2 des mes mésaventures. Mon problème est directement lié à celui de l'épisode 1 mais un peu plus poussé.

    Pour re-situer le problème :
    je viens de récupérer un projet développé en vb.net en tant que "Site Web Asp.Net" et ma mission consiste à le convertir en "Application Web Asp.Net".
    J'ai suivi les différentes étapes listées ici : Converting a Web Site Project to a Web Application Project in Visual Studio
    Après avoir résolus toutes les problèmes de références manquantes, je me retrouve face à un dernier problème (du moins j'espère que c'est le dernier celui-ci).

    Contexte : je possède une page maître et un "webform avec page maître".

    Pour résumer et simplifier au maximum : dans le aspx de ma "webform avec page maître", une fonction du codebehind est appelée pour formater une donnée. Mais cela ne semble pas fonctionner dans la version "application" de mon site.


    Page maître
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ Master Language="VB" 
                AutoEventWireup="false" 
                CodeBehind="MP.master.vb" 
                Inherits="WebApplication_testVide.MP" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <body>
     
           <asp:ContentPlaceHolder ID="body" runat="server" />
     
        </body>
    </html>

    Webform avec page maître
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ Page Title="" 
            Language="vb" 
            AutoEventWireup="false" 
            MasterPageFile="~/MP.Master" 
            CodeBehind="WebFormTest.aspx.vb" 
            Inherits="WebApplication_testVide.WebFormTest" 
          %>
     
     
    <asp:Content ID="Content2" ContentPlaceHolderID="body" runat="server">
     
        <%= AfficheToto()%>
     
    </asp:Content>
    Code behind du Webform avec page maître
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Class WebFormTest
        Inherits System.Web.UI.Page
     
     
        Protected Function AfficheToto() As String
            Return "toto"
        End Function
     
    End Class
    Le compilateur me sort ce message d'erreur :
    'AfficheToto' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
    => Là je sèche... quand je fais ce test en utilisant un webform sans page maître (voir épisode 1) ça fonctionne parfaitement, mais pas dans le cas avec page maître.

    => Je fais à nouveau appel à la communauté ! Auriez vous une solution à m'apporte afin que cela fonctionne ?

    Pour info :
    • Mes compétences en vb.net sont limitées, pardonnez moi si je passe à côté de quelquechose qui pourrait sembler simple !
    • Cet extrait de code est bien sur simplifié. En réalité les appels aux méthodes de formatage sont présents dans le ItemTemplate d'un ListView.
    • Je ne peux pas me permettre de recoder l'application, car ce n'est pas le seul site que je doive convertir et cette tâche est sensée être "rapide" !

  2. #2
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    En ayant lu juste
    Bonjour,
    Puis
    'AfficheToto' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
    Du coup je remonte un peu plus haut...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Protected Function AfficheToto() As String
    Si tu mets Public à la place du Protected ça ne fonctionne pas ?
    (Je n'ai absolument pas lu le reste de ton message, donc ne m'en veux pas si ce n'est pas le problème. )

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse Air P-E mais ce n'est pas la solution à mon problème malheureusment. D'ailleurs j'avais déjà testé ça, même si j'avais peu d'espoir là-dedans

Discussions similaires

  1. Appeler une fonction de ThisWorkbook depuis un module
    Par MyJero dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/11/2013, 17h15
  2. [Débutant] Appeler une fonction du CodeBehind depuis un webform avec page maître
    Par ptichub dans le forum VB.NET
    Réponses: 2
    Dernier message: 22/08/2013, 16h55
  3. [Débutant] Appeler une fonction du CodeBehind depuis le Aspx
    Par ptichub dans le forum VB.NET
    Réponses: 2
    Dernier message: 22/08/2013, 10h50
  4. [Débutant] Appeler une fonction DLL C# depuis le C++ par API LOADLIBRARY
    Par yann458 dans le forum C#
    Réponses: 3
    Dernier message: 07/05/2013, 23h49
  5. Réponses: 1
    Dernier message: 29/06/2010, 22h24

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