Sende-Parameter in die dynamisch geladen werden Benutzer-Steuerelemente
Ich das laden der Inhalte einige Bedienelemente in meine Seite mit der Verwendung von jQuery. So habe ich diese Funktion extrahiert den Inhalt aus meinem User-Control und es funktioniert wie ein Charme.
public string GetObjectHtml(string pathToControl)
{
//Create instance of the page control
Page page = new Page();
//Create instance of the user control
UserControl userControl = (UserControl)page.LoadControl(pathToControl);
//Disabled ViewState- If required
userControl.EnableViewState = false;
//Form control is mandatory on page control to process User Controls
HtmlForm form = new HtmlForm();
//Add user control to the form
form.Controls.Add(userControl);
//Add form to the page
page.Controls.Add(form);
//Write the control Html to text writer
StringWriter textWriter = new StringWriter();
//execute page on server
HttpContext.Current.Server.Execute(page, textWriter, false);
//Clean up code and return html
string html = CleanHtml(textWriter.ToString());
return html;
}
Aber ich würde wirklich gerne, senden einige Parameter in meinem User-Control, wenn ich es schaffen. Ist das möglich, und wie kann ich das machen?
Kann ich sehen, dass LoadControl()
Sie können noch einige Parameter mit object[] parameters
aber im wirklich nicht sicher, wie es zu benutzen, helfen, sehr geschätzt!
InformationsquelleAutor Martin | 2010-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine Schnittstelle implementieren, die auf Ihrem usercontrol für die entsprechenden params.
implementieren Sie die Schnittstelle in das Benutzersteuerelement, wie diese
dann laden Sie Ihre Kontrolle:
Zugang die Kontrolle über die Schnittstelle
Getan,
können Sie mehrere Schnittstellen für verschiedene Zwecke gibt.
Wenn das usercontrol noch nicht die Schnittstelle implementiert, wird die if-Anweisung vermeiden Sie die Verwendung es
Aber wenn Sie wirklich nicht auf die Benutzersteuerelemente und Sie wissen, "ein bisschen" die Eigenschaften, die Sie festlegen möchten und welche Art Sie versuchen, eine mehr dynamische Weise mit Reflexion:
laden Sie das Benutzersteuerelement:
Holen Sie sich die Eigenschaften des usercontrol geladen:
Schleife durch:
Ich würde Sie nur ermutigen, diese, wenn Sie keinen Zugriff auf die Benutzersteuerelemente und es gibt Dutzende von Ihnen mit viel der Eigenschaften: variable pro usercontrol. (Es kann sehr hässlich, langsam und nicht fail-safe)
Hinzugefügt etwas extra-aber dass scheint jetzt veraltet 😉 Bitte verwenden Sie nicht die Reflexion Zeug...
InformationsquelleAutor Caspar Kleijne
Ich bin mir nicht sicher, wie es getan werden kann, generisch, aber es sieht aus wie Sie sind, laden Sie Ihre eigenen Benutzer-Kontrolle sowieso. Versuchen casting die das Benutzersteuerelement, um den Typ des Steuerelements, die Sie verwenden, zum Beispiel.
InformationsquelleAutor Jemes