Laden...

Page Klasse neu erstellen

Erstellt von naumann vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.413 Views
N
naumann Themenstarter:in
61 Beiträge seit 2005
vor 17 Jahren
Page Klasse neu erstellen

Hallo,

ich steh grad aufm Schlauch. Ich möchte mir eine neue Page Klasse NewWebForm erstellen. Diese Leite ich von der Page Klasse ab. sieht ungefähr so aus:


public class NewWebForm: System.Web.UI.Page
{
public StarfishWebForm()
{

}
}

Wenn ich der Klasse keinen neuen Konstruktor zuweise, dann geht das ganze. Wenn sie jedoch einen hat, dann kann ich kann ich meiner Seite keinen weiteren WebForms-Objekte hinzufügen.

Meine Frage also. Wie kann ich in meiner neuen Page Klasse den Konstruktor von Page aufrufen. Ich hab an sowas wie **base = new Page(); **gedacht. Funktioniert aber leider nicht.

5.941 Beiträge seit 2005
vor 17 Jahren

Hallo Naumann

Hmm, wenn ich mich nicht irre geht das so:


base.Methode(Argument);

Aber ob dir das weiterhilft ?(

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

S
1.047 Beiträge seit 2005
vor 17 Jahren

eher so

public class NewWebForm: System.Web.UI.Page
{
public StarfishWebForm():base()
{

}
}

bzw. mit argumenten in ()

das was Peter beschreibt is der explizite aufruf von methoden der oberklasse

N
naumann Themenstarter:in
61 Beiträge seit 2005
vor 17 Jahren

was meinst du damit?

Original von Peter Bucher

  
base.Methode(Argument);  
  

Wenn ich das Projekt kompiliere dann zeigt er mir folgende Warnung:

Eine Ausnahme ist aufgetreten, während eine Instanz von starfish.StarfishWebForm erstellt wurde. Die Ausnahme war "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.".

Er meint, dass alle Projekte erfolgreich erstellt wurden. Es funktioniert auch im Browser. Nur im Designer werden mir keine Objekte angezeigt.

N
naumann Themenstarter:in
61 Beiträge seit 2005
vor 17 Jahren

Ich merke grade dass ich mich verschrieben habe.

Ich meine natürlich:


public class NewWebForm: System.Web.UI.Page
{
public NewWebForm
{
//Konstruktor
}

}

public class NewWebForm: System.Web.UI.Page
{
public StarfishWebForm():base()
{

}
}

Meinst du, dass der Konstruktor von der Base erben soll? Geht das❔what:

S
1.047 Beiträge seit 2005
vor 17 Jahren

nein so gibt man an welcher basisikonstruktor aufgerufen werden soll

:base() kann man auch weg lassen denn wenn man nichts schreibt wird der automatisch aufgerufen

nachtrag:
gibts nen grund warum du das in den konstruktor einfügen willst?
kannst das auch ins page_load rein nehmen

N
naumann Themenstarter:in
61 Beiträge seit 2005
vor 17 Jahren

Eine andere Frage. Wie konnte ich prüfen, ob das Programm grade im Designer ausgeführt wird? Das Problem tritt ja nur im Designmodus auf.

Ich hatte das ganze schonmal in irgendeinem Steuerelement gemacht. Leider weiß ich weder in welchem, noch wie ichs gemacht habe 😁 .

//EDIT:

Habe das ganze nochmal so probiert:


public class NewWebForm: System.Web.UI.Page
{
public NewWebForm
{
if (!this.site.DesignMode)
{
//Konstruktor
}

}

}

Leider meckert er rum, dass er DesignMode nicht besitzt. Nur wie stelle ich sonst fest ob er im Designmode ist oder nicht?