ashx LoadUserControl et paramétres
Bonjour à tous,
je patauge un peu avec mon application. Mon problème est que je passe par de l'ajax pour charger des User Control en cascade dans des divs.
Dans un fichier ashx, j'arrive bien à loader mes différents userControl via la méthode Page.LoadControl("monfihier.ascx") et les afficher à l'écran.
Dans mon contexte, j'ai une queryString avec mes paramètres. Le hic c'est que je n'arrive pas à les transmettre au usercontrol.
Sachant que le nombre de paramètres n'est pas déterminer à l'avance. La seule que je sais c'est que ce sont des strings.
Par avance je vous remercie de votre aide.
Voici le code de la page ashx qui fonctionne sans le passage de paramètres.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.ContentType = "text/html"
Dim ctrl As String = context.Request("control")
Dim parametres As String = context.Request.QueryString
If (Not String.IsNullOrEmpty(ctrl)) Then
context.Response.Write(LoadUserControl(ctrl))
Else
ctrl = ""
End If
End Sub
Protected Shared Function LoadUserControl(ByVal user_control As String) As String
Dim retour As String = String.Empty
'Verification de l'existance du userControl
Dim existe As Boolean = System.IO.File.Exists(HttpContext.Current.Server.MapPath(user_control))
If Not existe Then Return retour
Using Page As New Page
Dim html As HtmlForm = New HtmlForm()
If (user_control.StartsWith("../")) Then user_control = (New Regex("^[\.]{2}")).Replace(user_control, "~")
Dim uc As UserControl = Page.LoadControl(user_control)
Using writer As New StringWriter()
html.Controls.Add(uc)
Page.Controls.Add(html)
HttpContext.Current.Server.Execute(Page, writer, False)
retour = writer.ToString()
End Using
End Using
Return retour
End Function |