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 :

Instancier un objet page depuis son nom "maPage.aspx"


Sujet :

ASP.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut Instancier un objet page depuis son nom "maPage.aspx"
    Bonjour à tous,

    je cherche à instancier un objet Page grâce à son nom "maPage.aspx".

    Un peu comme on pourrait le faire pour userControl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Control ctrl = Page.LoadControl("ctrl.ascx");
    Quelqu'un a t'il une idée ?

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    La question que je me pose est pourquoi faire? tu veux recréer un module ISAPI pour IIS ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    le but est d'obtenir la liste des contrôles contenus dans une page
    au moyen de :

  4. #4
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Tu peux le faire surement avec de la reflection, mais je ne saisis pas trop l'utilité de vouloir connaitre les contrôles d'une page non instanciée.

    Je suspecte un problème de conception de ton appli si je puis me permettre

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    J'ai effectivement aussi pensé à la réflexion mais je n'ai pas encore trouvé comment faire dans le cas d'une page web.

    L'idée finale est de réaliser un petit module qui permet de générer des fichiers ressources pour la localisation d'un projet web.
    Visual studio peux générer ces fameux fichiers mais seulement pour une page à la fois. (en tout cas, je n'ai pas trouvé comment faire pour toutes les pages d'un coup).

    Or, notre projet web contient beaucoup de pages et c'est fastidieux de le faire pour chaque.

    Donc, en résumé ça donne :

    pour chaque page ou usercontrol d'un projet web -->
    en parcourir tous les contrôles -->
    lister les propriétés "localizable"
    et créer un fichier xml .resx avec toutes ces propriétés.


    Maintenant, peut être y a t'il une meilleure solution de faire ça ?

  6. #6
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Effectivement, je comprends mieux ton souci. Au temps pour moi sur cette histoire de conception...

    Si j ai un peu de temps je regarderais un peu ce que l'on peut faire avec la reflection.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Points : 220
    Points
    220
    Par défaut
    Pas de soucis ;-)

    et merci...

  8. #8
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Une autre idée serait de modifier la page mere et de créer dynamiquement les fichiers resx lors de l'appel en runtime de cette page. Et avec un web spider pour passer sur toutes les pages ca te ferais une construction automatique de tous tes fichiers resx. Tu peux meme mettre cette creatino de fichiere resx sensible au mode de compilation histoire de rendre tout ceci plus propre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public partial class BasePage : System.Web.UI.Page 
    {
       [Conditional("CreationLocalisation")]
       private void CreationLocalisation()
       {
                #if CreationLocalisation
                 .... ton code.......
                #endif
       }
    }

  9. #9
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Salut tonktonks,

    j ai fait quelque recherches de mon coté cette après midi sur ton problème qui me semblait interessant, et malheureusement je ne vois pas de solution.

    Ici, ils abordent ton problème. Et ils choisissent de faire un faux appel a la page pour en extraire ensuite les contrôles.

    J ai fait un petit test avec une page aspx :

    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
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:TextBox runat=server ID=C_TB_MyTB 
        ></asp:TextBox>
        <asp:Label runat=server ID=C_Lbl_monLAbel></asp:Label>
        </div>
        </form>
    </body>
    </html>
    ou j ai declaré deux controles et je tente d'y acceder par reflexion dna sle code behind:

    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
      protected void Page_Load(object sender, EventArgs e)
            {
                Assembly assembly = this.GetType().Assembly;
     
                foreach (Type type in assembly.GetTypes())
                {
                    try
                    {
                        Object instance = (Object)Activator.CreateInstance(type);
     
                    }
                    catch (Exception except)
                    { 
                    }
                }
            }
    Je vois bien ma page, et les deux contrôles non instanciés dans le debugger, mais impossible de les atteindre par quelque manière que ce soit. La collection de contrôle reste vide ( c'est normal car les contrôles ne sont pas instanciés), et dans la collection de propriétés du type, il n'y figurent pas. voila! désolé, si jamais tu trouves la solution cela m'intéresserait....

    Bon courage à toi en tout cas, a+,

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/05/2008, 11h31
  2. [IL]Instancier un objet à partir de son nom de classe
    Par neo.51 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 08/08/2007, 11h43
  3. Réponses: 7
    Dernier message: 29/11/2006, 11h32
  4. [C#] Instancier un objet Form depuis un Thread
    Par Philipili dans le forum Windows Forms
    Réponses: 10
    Dernier message: 13/05/2006, 13h40

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