Je crée un objet Page et j'y ajoute un contrôle à des fins d'impression. Le code fonctionne, mais je ne peux pas trouver un moyen d'ajouter un lien de feuille de style à l'en-tête. Dans le code que j'ai collé j'essaye d'ajouter un lien à l'en-tête et puis ajoute le contrôle d'en-tête à la page, mais cela provoque une erreur:Ajouter un lien de la feuille de style à un objet de page créé dynamiquement
La demande n'est pas disponible dans ce contexte System.Web.UI. Page.get_Request() +8700216 System.Web.UI.HtmlControls.HtmlHead.RenderChildren (écrivain HtmlTextWriter) +83
Function getControlHtml() As String
Dim sw As New StringWriter
Dim tw As New HtmlTextWriter(sw)
Dim pg As New Page()
pg.EnableEventValidation = False
Dim cssLink As New HtmlLink
cssLink.Href = "~/css/StyleSheet.css"
cssLink.Attributes.Add("rel", "Stylesheet")
cssLink.Attributes.Add("type", "text/css")
'works without this code
Dim head As New HtmlHead
head.Controls.Add(cssLink)
pg.Controls.Add(head)
Dim frm As New HtmlForm
pg.Controls.Add(frm)
frm.Attributes.Add("runat", "server")
frm.Controls.Add(pnlMACForm)
pg.DesignerInitialize()
pg.RenderControl(tw) ' <--
Return sw.ToString()
End Function
Merci pour votre réponse womp. Je savais que cette route était un peu hacky et fragile. J'essayais de créer une méthode rapide et réutilisable pour saisir des parties de la page pour l'impression. –
Je vais utiliser une autre méthode qui fonctionnera, juste avec plus de codage manuel de html. –