ASP.NET Kann nicht auf Benutzer-Steuerelement-Eigenschaft in der code-behind-Datei
Visual Studio 2008, C#, ASP.NET
Brauchen, um mehrere Kopien (oder Instanzen) einer web-Benutzer-Steuerelement programmgesteuert.
Habe ich UserControlFile.ascx enthält eine asp:Label mit ID="vhLabel" in ihm.
In dieser Datei habe ich gesetzt Eigenschaft Text des Labels durch public string vhText variable, wie üblich:
public string vhText
{
set
{
vhLabel.Text = value;
}
}
Gibt es auch einige divs und andere html-Daten in dieser Datei nicht erstellt werden kann, die in C# programmgesteuert, so habe ich ascx-Datei.
Nun in der code-behind-Datei muss ich:
- Klon dieses Steuerelement viele Male;
- legen besonderen Wert label-Eigenschaft "Text" jeder Klon durch "vhText" variable.
Bitte, teilen Sie Ihre Vorschläge auf diese Fragen. Wenn Sie brauchen, kann ich meinen code hier.
Ich habe auf der Suche nach einer Antwort für sehr lange, aber immer noch erfolglos.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie eine Exemplarische Vorgehensweise, wie Sie programmgesteuert hinzufügen von Benutzersteuerelementen zu deiner Seite hier: http://msdn.microsoft.com/en-us/library/c0az2h86(v=vs. 100).aspx
In Ihrem Fall, brauchen Sie etwas wie dies in Ihrer
UserControlFile.ascx
Kontrolle (className
Attribut ist der wichtige Teil):Dann, an der Spitze Ihrer Seite, die auch die Kontrolle (ändern Sie den Pfad entsprechend Ihrer Struktur):
Schließlich, den code hinter der Seite enthält den code, um programmgesteuert fügen Sie die Instanzen der Kontrolle über die
LoadControl
- Methode und der Einsatz derMyUserControl
Typ - Definition in derclassName
- Attribut der @Control-Direktive oben:Sollten Sie in die richtige Richtung...
myLabel = new Label
würde ersetzt werden durch dievar control...
Zeile oben, z.B.var myLabel = (ASP.MyUserControl)LoadControl("~/Controls/UserControlFile.ascx");
und fügen Sie dann die Kontrolle, um Ihre TableCell als normal.Müssen Sie mit LoadControl-Methode:
public partial class [something here] : System.Web.UI.UserControl
so ersetzen Sie einfach "MyUserControl" aus dem obigen Beispiel-code, mit dem, was ist die eigentliche Klasse name, den Sie sehen, anstatt "hier etwas". Stellen Sie sicher, dass der control-code hinter den gleichen namespace.