2010-11-12 7 views
0

Je souhaite créer deux classes partielles pour le fichier aspx unique. J'utilise vs2005 dotnet 2.0. Je ne pouvais pas accéder à la méthode d'une classe partielle dans une autre classe partielle.asp.net classes partielles

Quelqu'un peut-il m'aider.

classe partielle 1: ma page aspx

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) { } 
    private void meth() { } 

} 

classe partielle: 2

public class _Default : System.Web.UI.Page 
{ 
    public _Default() { } 
} 

je ne pouvais pas en mesure d'accéder à la méthode de la méthamphétamine en classe partielle 2

+1

pouvez-vous s'il vous plaît poster la définition de la classe ici? –

+1

Assurez-vous que vos deux classes ont «même nom» et «partial» modificateur et étendre 'System.Web.UI.Page' –

+0

j'ai la même chose, ce que vous avez dit .. mais encore il n'a pas fonctionné. Classe partielle 1: ma page aspx principale classe partielle publique _Default: System.Web.UI.Page { protected void Page_Load (object sender, EventArgs e) { } private void meth() { }} classe partielle: 2 public class _Default: System.Web.UI .page { \t _Default public() { \t \t \t \t}} Je ne pouvais pas accéder à la méthode meth dans la classe partielle 2. – muthukumarm

Répondre

3

Vous devez utiliser le modificateur partiel pour les deux déclarations de classe, comme ceci:

// Default.aspx.cs 
public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) { } 
    private void meth() { } 
} 

// Default_Part2.aspx.cs 
public partial class _Default : System.Web.UI.Page 
{ 
    public _Default() 
    { 
     meth(); 
    } 
} 

Dans VS 2005, il peut être également nécessaire de mettre à jour les dépendances du fichier ASPX , a trouvé ici:

http://aspnetresources.com/blog/partial_class_files_in_vs2k5

En bref, ouvert le fichier de projet avec un éditeur de texte et recherchez:

<Compile Include="Default_Part2.aspx.cs"> 
    <SubType>ASPXCodeBehind</SubType> 
</Compile> 

Ajoutez votre fichier comme ceci:

<Compile Include="Default_Part2.aspx.cs"> 
    <SubType>ASPXCodeBehind</SubType> 
    <DependentUpon>Default.aspx</DependentUpon> 
</Compile> 

Je ne sais pas si cela va fonctionner, car je n'ai pas VS 2005 pour l'essayer. Hope it helps si ...

+0

J'ai manqué le modificateur partiel dans le commentaire. mais j'utilise le même code que ci-dessus. il est en train de jeter l'erreur de temps de compilation dit que Meth() n'existe pas dans le contexte actuel. Plus sur je pourrais pouvoir accéder à System.Web.UI.Page pour hériter dans la deuxième classe. Ma deuxième classe est disponible dans le fichier .cs. aidez s'il vous plaît ... – muthukumarm

+0

Pouvez-vous poster le code des deux fichiers? Juste les parties pertinentes, attention ... –

+0

Dans la déclaration de deuxième classe que vous avez posté ci-dessus, vous avez manqué le modificateur "partial". Avez-vous également manqué dans votre code, ou juste dans votre message? –

2

Votre deuxième classe ne pas le modificateur partial.

Vous devez:

public partial class _Default : System.Web.UI.Page 
{ 
    public _Default() { } 
} 
1

* Something About Classe partielle: - *

Toutes les définitions partielles doivent procédé au mot clé "partielle". Tous les types partiels destinés à faire partie du même type doivent être définis dans un même ensemble et module. Les signatures de méthode (type de retour, nom de la méthode et paramètres) doivent être uniques pour la typée agrégée (partiellement définie). Les types partiels doivent avoir la même accessibilité. Si une pièce est scellée, la classe entière est scellée. Si une partie est abstraite, la classe entière est abstraite. L'héritage d'un type partiel s'applique à toute la classe.

Questions connexes