J'ai le code suivant dans ma page qui fonctionne bien bien que le nombre de cas soit beaucoup plus grand. Je dois utiliser exactement la même liste de cas dans d'autres sélections, mais je ne veux pas avoir exactement le même code dupliqué partout.Déclarer une liste de cas à utiliser à plusieurs endroits
J'ai ceci:
Select Case Request.Cookies("LatestRefer").Value
Case "EZ12"
freeCallNumber = "0800 111 1111"
Case "EW56"
freeCallNumber = "0800 222 2222"
Case "AT34"
freeCallNumber = "0800 333 3333"
Case Else
freeCallNumber = "0800 444 4444"
End Select
Je veux idéalement quelque chose comme ça
Select Case Request.Cookies("cookie1").Value
myGlobalListOfCases()
End Select
Select Case Request.Cookies("cookie2").Value
myGlobalListOfCases()
End Select
Select Case Request.Cookies("cookie3").Value
myGlobalListOfCases()
End Select
Toutes les idées?
EDIT:
Private Function getFreeCallNumber(ByVal value As String) As String
Select Case value
Case "EZ12"
Return "0800 111 1111"
Case Else
Return "0800 222 2222"
End Select
End Function
Et dans le page_load:
If Not Request.Cookies("cookie1") is Nothing Then
freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie1").Value)
Else
freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie2").Value)
End If
Ce genre d'œuvres, mais il y a un léger problème. Je dois charger la page deux fois pour que le numéro de téléphone change (ou le numéro de téléphone apparaît comme il aurait dû le faire sur le chargement précédent). J'espère que cela a du sens ... c'est un comportement assez étrange.
Peut-être que vous obtenez ce problème si vous définissez (envoyez) les cookies dans la même demande de page? Ou peut-être que c'est un problème de viewstate/databind, selon ce que vous faites avec le numéro de téléphone. Essayez de déboguer la page ou écrivez simplement dans le flux de réponse pour voir quand il récupère la date. C'est à dire. Response.Write ("Number =" + freeCallNumber); –