Je cherche à construire un contrôle qui abstrait essentiellement un ScriptManager. J'en ai besoin pour ressembler/se sentir aussi proche d'un ScriptManager que possible. La raison en est que nous pouvons utiliser une instruction "#if not DEBUG" pour charger dynamiquement les fichiers .js dans CompositeScript à des fins de publication, mais aussi maintenir un débogage facile dans notre environnement de développement.Contrôle "personnalisé" ScriptManager?
Voici ce que je joue avec à ce jour (Le balisage de contrôle ne contient que un vide ScriptManagerProxy):
Public Partial Class MyScriptManager
Inherits System.Web.UI.UserControl
Dim mlScripts As New List(Of ScriptReference)
Dim mlServices As New List(Of ServiceReference)
Région "Propriétés"
Public Property Scripts() As List(Of ScriptReference)
Get
Return mlScripts
End Get
Set(ByVal value As List(Of ScriptReference))
mlScripts = value
End Set
End Property
Public Property Services() As List(Of ServiceReference)
Get
Return mlServices
End Get
Set(ByVal value As List(Of ServiceReference))
mlServices = value
End Set
End Property
Fin Région
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
#If DEBUG Then
LoadNonComposite()
#Else
LoadComposite()
#End If
For Each scr As ServiceReference In mlServices
smScriptManagerProxy1.Services.Add(scr)
Next
End Sub
Région "Méthodes auxiliaires"
Private Sub LoadComposite()
For Each sr As ScriptReference In mlScripts
smScriptManagerProxy1.CompositeScript.Scripts.Add(sr)
Next
End Sub
Private Sub LoadNonComposite()
For Each sr As ScriptReference In mlScripts
smScriptManagerProxy1.Scripts.Add(sr)
Next
End Sub
Fin Région
End Class
Il semble que les ScriptReferences ne reçoivent pas correctement enregistrés. Dans DEBUG, j'obtiens des erreurs sur plusieurs scripts en cours de chargement, et dans RELEASE, je reçois "sys non défini" (la bibliothèque Ajax n'est pas chargée). Nous utilisons ScriptReferenceProfiler pour charger tous les fichiers .js et les ajouter manuellement (alias, "MicrosoftAjax.js" est ajouté manuellement au scriptManager dans le balisage)
Toute aide/direction est appréciée!