mercredi 9 mars 2005 12:14
Aurelien
Astuce : System.Text.StringBuilder.AppendFormat
Petite aventure du matin avec System.Text.StringBuilder.AppendFormat !!
Voici ce que j'essayai de mettre en place ce matin :
Public Function GetJsOnLoad(ByVal _jsFunctionName As String) As String
Return String.Format("window.onload = function( e ) { oldOnload( e ); {0}(); }" & vbCrLf, _jsFunctionName)
End Function
Tout me semblait normal jusqu'à ce que j'execute ma page et que je recupère une belle exception :
System.FormatException: Le format de la chaîne d'entrée est incorrect.
Etrange ... Me voici parti dans le MSDN pour trouver de l'info sur les formats de chaîne car je me doute que j'ai un soucis avec mes {}.
Ne trouvant pas d'info, je regarde String.Format via Reflector qui me ramène à System.Text.StringBuilder.AppendFormat où je découvre un parser avec ce bout de code :
If (ch1 = "{") Then
If ((num1 < num2) AndAlso (chArray1(num1) = "{")) Then
num1 += 1
Else
num1 -= 1
Exit Do
End If
End If
Il suffit donc des doubler les caractères { et } lorsqu'il ne sont pas utilisé pour le formattage :
Public Function GetJsOnLoad(ByVal _jsFunctionName As String) As String
Return String.Format("window.onload = function( e ) {{ oldOnload( e ); {0}(); }}" & vbCrLf, _jsFunctionName)
End Function
Aurelien
Member Of WygTeam
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :