2010-02-22 5 views
0

Im obtenir une erreur de compilation avec le code suivant ...Expression attendue

Private Property GridViewSortDirection() As String 

    Get 
     Return If(TryCast(ViewState("SortDirection"), String), "ASC") 
    End Get 
    Set(ByVal value As String) 
     ViewState("SortDirection") = value 
    End Set 

End Property 

Il se passe sur la ligne suivante ...

Return If(TryCast(ViewState("SortDirection"), String), "ASC") 

retours d'erreur ...

Erreur 11 C: \ inetpub \ wwwroot \ TPSupport \ main \ UserControls \ grid.ascx.vb (192): erreur BC30201: expression attendue.

Toute idée de

Merci

Son converti de C#

private string GridViewSortDirection 
{ 
    get { return ViewState["SortDirection"] as string ?? "ASC"; } 
    set { ViewState["SortDirection"] = value; } 
} 
+0

si (ViewState ("SortDirection")) retour "ASC" de fin si – jjj

+0

je pense qu'il n'accepte pas retourner une condition ... donc faire l'état et puis retourner la valeur – jjj

+0

Si (TryCast (ViewState ("SortDirection"), String), "ASC") - est-ce une telle construction possible? sur quel compilateur? (Je ne peux pas le compiler sur VS 2008) – Ando

Répondre

0

Je ne suis pas familier avec VB, mais l'utilisation du mot-clé If montre que vous faites la comparaison entre le résultat de TryCast et "ASC" ,

Essayez de cette façon, en utilisant l'opérateur de comparaison approprié comme

Return If(TryCast(ViewState("SortDirection"), String) <> "ASC") 
0

Quelle version du compilateur utilisez-vous? Je soupçonne que vous avez par inadvertance basculé vers une version de VB (< 9.0) qui ne supporte pas encore l'opérateur conditionnel.

Questions connexes