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 : Sélectionner tout - Visualiser dans une fenêtre à part
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