Envoyer des paramètres à charger dynamiquement des contrôles utilisateur
Je charge le contenu de certains Contrôles Utilisateur dans ma page avec l'utilisation de jQuery. Donc, j'ai cette fonction qui extrait le contenu de mon Contrôle de l'Utilisateur, et il fonctionne comme un 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;
}
Mais je tiens vraiment à envoyer dans certains paramètres dans mon de Contrôle de l'Utilisateur lorsque j'ai créer. Est-ce possible, et comment puis-je le faire?
Je peux voir que LoadControl()
peut prendre des paramètres avec des object[] parameters
mais je suis vraiment pas sûr de la manière de les utiliser, de les aider beaucoup apprécié!
Vous devez vous connecter pour publier un commentaire.
Vous pouvez implémenter une interface sur votre usercontrol pour la params.
implémenter l'interface de l'objet usercontrol, à l'instar de ce
puis charger votre contrôle:
Acces au contrôle via l'interface
Fait,
vous pouvez ajouter plusieurs interfaces pour plusieurs raisons là.
Si le contrôle utilisateur n'a pas l'interface de mise en œuvre, si la déclaration d'éviter de l'utiliser
Mais si vous avez vraiment ne peut pas accéder à la usercontrols et vous le savez "un peu" des propriétés que vous souhaitez définir et de quel type ils sont essayer de manière plus dynamique avec la réflexion:
charge le contrôle usercontrol:
obtenir les propriétés de l'chargé usercontrol:
boucle síy:
Je tiens seulement à vous encourager si vous NE pouvez pas accéder à la usercontrols et il y a des dizaines d'entre eux avec beaucoup, beaucoup de propriétés des variables par usercontrol. (Il peut devenir très laid, lent et pas fail-safe)
Je ne suis pas sûr de savoir comment cela peut être fait de façon générique, mais il semble que vous êtes en train de charger votre propre contrôle de l'utilisateur de toute façon. Lancez le UserControl pour le type de contrôle que vous utilisez, par exemple.