Wie kann man eine Variable aus z.B. default.aspx seite nach einen Control Übergeben?
default.aspx:
public partial class _Default : System.Web.UI.Page
{
string PROJEKTPFAD = @"C:\Inetpub\wwwroot\webmonitor\meinProjekt\";
XmlDocument xmldoc = new XmlDocument();
protected void Page_Load(object sender, EventArgs e)
{
//create xmldoc
}
}
Control:
public class Tabellenausgabe : Control
{
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<h1> Transaktion </h1>");
//Hier hätte ich gerne den Zugriff auf xmldoc aus default.aspx
}
}
};
danke im Vorraus
Mit einem öffentlichen Feld, oder einem Proberty.
Aus der aspx Seite gehst Du dann folgendermaßen vor:
Tabellenausgabe tbl = (Tabellenausgabe)<FindControlMethode>;
tbl.<Proberty> = "bla";
Der Quellcode ist sehr vereinfach, sollte aber das Prinzip verdeutlichen.
Hallo qwert_a,
mit einer Deklaration wie diese:
public partial class _Default : System.Web.UI.Page
{
string PROJEKTPFAD = @"C:\Inetpub\wwwroot\webmonitor\meinProjekt\";
XmlDocument xmldoc = new XmlDocument();
protected void Page_Load(object sender, EventArgs e)
{
//create xmldoc
}
}
definierst Du PROJEKTPFAD und xmldoc als private Klassenvariablen in der Klasse _Default.
Das User-Control ist eine separate Klasse, und kann daher nicht auf die privaten Variablen von anderen Klassen zugreifen.
Also solltest Du einen Parameter für die Klasse Tabellenausgabe erstellen.
Das würde dann so aussehen:
public class Tabellenausgabe : Control
{
// Hier eine Variable deklarieren, instanziiert wird sie später
XmlDocument xmldoc = null;
// Einen Standardkonstruktor, ohne Parameter für den Designer
Tabellenausgabe()
{
// Der Designer braucht keine echte Daten, die er anzeigen soll,
// Deshalb einfach ein neues xml-Dokument, ohne Inhalt
xmldoc = new XmlDocument();
}
// Eine Property zum setzen von xmldoc
public XmlDocument myXmlData
{
get { return this.xmldoc; }
set { this.xmldoc = value; }
}
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<h1> Transaktion </h1>");
//Hier hätte ich gerne den Zugriff auf xmldoc aus default.aspx
}
}
}
Dann wirst Du vor dem Anzeigen des Usercontrols noch diese Eigenschaft setzen müssen, damit was sinnvolles damit passiert. Das machst Du in _Default in der OnInit() Methode, indem Du einfach folgende Zeile mit einfügst:
// Natürlich der Variablenname Deines UserControls abgleichen
meinUserControl.myXmlData = this.xmldoc;
Gruß
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”