Bonjour,

J'ai un site web en ASP.NET / VB.NET.

Tous les contrôles de mes pages doivent être traduits en fonction de la langue de l'utilisateur.

De ce fait, lorsque l'utilisateur se connecte, je charge la table des libellés de mes contrôles dans un DataSet que je conserve dans une variable de session.

Lorsque je charge une page (on PAGE_LOAD), je lance une procédure qui permet de récupérer le DataSet et de traduire mes contrôles :

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
 
Dim PageName As String = "default.aspx"
Dim dtsLabel As DataSet = Session("DS_Label")
Dim myRow As DataRow
Dim myControl As Control
Dim myLabel As Label
 
With dtsLabel.Tables("tabLabel")
    For Each myRow In .Rows
        If (PageName = myRow("LABEL_PAGE")) Then
            myControl = Me.FindControl(myRow("LABEL_NAME"))
            If Not myControl Is Nothing Then
                myLabel = CType(myControl, Label)
                myLabel.Text = myRow("LABEL_TEXT_USER")
            End If
        End If
    Next
End With
Mais quand ma session a expiré, j'obtiens le message suivant :
La référence d'objet n'est pas définie à une instance d'un objet.
Comment faire pour éviter cette erreur ?
Comment savoir si ma session a expirée ?
Faudrait-il que j'ajoute une condition avant de lancer ma traduction ?

Avant cela, lorsque ma session expirait, l'utilisateur était automatiquement redirigé vers la page de login.

Merci de votre aide.