Salut à tous,
Je suis la tuto pour développer une page applicative.
J'ai copié le code (à la main pour comprendre ce que je fais) et j'ai une NullPointerException sur la boucle qui parcourt mes collections.
J'ai ajouté un try catch qui ne fait rien dans le catch pour voir et je n'ai aucune collection qui s'affiche (donc, je suppose que le problème conerne toutes les collections).
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged SPSecurity.RunWithElevatedPrivileges(AddressOf GetItems) End SubVoici celui de la procédure :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 'Trouve tous les items créé par un utilisateur dans la ferme Private Sub GetItems() Dim CurrentUser As New SPFieldUserValue(Me.Web, Me.Web.CurrentUser.ID, Me.Web.CurrentUser.Name) Dim ResultList As New ArrayList Dim ThisFarm As SPFarm = SPFarm.Local Dim Service As SPWebService = ThisFarm.Services.GetValue(Of SPWebService)("") Dim WebApp As SPWebApplication = Nothing For Each WebAppl In Service.WebApplications Dim SiteCollection As SPSite Try For Each SiteCollection In WebApp.Sites Dim Web As SPWeb For Each Web In SiteCollection.AllWebs Dim Lists As SPListCollection = Web.Lists Dim List As SPList For Each List In Lists Dim Item As SPItem Try For Each Item In List.Items If Item(DropDownList1.SelectedValue).ToString = CurrentUser.ToString Then ResultList.Add(Item) End If Next Catch ex As Exception 'S'il y a une erreur, ne rien faire et passer à la liste suivante End Try Next Next Next Catch ex As Exception 'S'il y a une erreur, ne rien faire et passer à la collection suivante End Try Next End Sub
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Private Sub GetItems() Dim CurrentUser As New SPFieldUserValue _ (Me.Web, Me.Web.CurrentUser.ID, Me.Web.CurrentUser.Name) Dim ResultsList As New ArrayList() Dim ThisFarm As SPFarm = SPFarm.Local Dim Service As SPWebService = _ ThisFarm.Services.GetValue(Of SPWebService)("") Dim WebApp As SPWebApplication For Each WebApp In Service.WebApplications Dim SiteCollection As SPSite For Each SiteCollection In WebApp.Sites Dim Web As SPWeb For Each Web In SiteCollection.AllWebs Dim Lists As SPListCollection = Web.Lists Dim List As SPList For Each List In Lists Dim Item As SPListItem Try For Each Item In List.Items If Item(DropDownList1.SelectedValue).ToString() = _ CurrentUser.ToString() Then ResultsList.Add(Item) End If Next Item Catch exception As Exception 'Error in list. Move on to the next list. End Try Next List Next Web Next SiteCollection Next WebApp CreateResultsTable(ResultsList) End Sub
J'ai essayé de voir la différence (à part mon try catch, hein!) mais je ne vois pas ce qui cloche.
Est-ce que c'est le code du site qui a une faille ou bien est-ce que c'est moi qui ai mal tapé mon code?
Si vous voulez bien jeter un oeil...
Merci d'avance.
Partager