NullReferenceException dans une listview

Résolu
acbdev Messages postés 9 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 5 mai 2009 - 11 déc. 2008 à 16:47
acbdev Messages postés 9 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 5 mai 2009 - 15 déc. 2008 à 15:45
Voici le message d'erreur que j'obtiens sur mon code ci-dessous :

L'exception System.NullReferenceException n'a pas été gérée par le code utilisateur
Message="La référence d'objet n'est pas définie à une instance d'un objet."
Source="App_Web_erkv5gar"
StackTrace:
à page_admin_managers_produits.lsv_lp_manager_ItemUpdating(Object sender, ListViewUpdateEventArgs e)...

Code :
 
ProtectedSub lsv_lp_manager_ItemUpdating(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.ListViewUpdateEventArgs)Handles lsv_lp_manager.ItemUpdating
e.NewValues("LigneProduit_lpm") = DirectCast(lsv_lp_manager.EditItem.FindControl("ddl_lp_edit"), DropDownList).SelectedValueEndSub
 

Quelqu'un peut-il m'aider sachant que je travaille sur vs2008 ?

<!-- / message -->

7 réponses

acbdev Messages postés 9 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 5 mai 2009
15 déc. 2008 à 15:45
Euréka !

Protected Sub lsv_lp_manager_ItemUpdating(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.ListViewUpdateEventArgs)Handles lsv_lp_manager.ItemUpdating

Dim ddlservice
As DropDownList

ddlservice = lsv_lp_manager.Items(e.ItemIndex).FindControl("ddl_lp_edit")

        e.NewValues("LigneProduit_lpm") = ddlservice.SelectedValue

EndSub

Merci beaucoup pour ton aide.
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
11 déc. 2008 à 17:41
Salut

Il y a un objet null dans ton code

Utilise le debogeur pour le trouver.

Pour mieux le configurer
Debug>Exception
Coches la case throw en face les CLR exceptions  (2ieme ligne)

ProtectedSub lsv_lp_manager_ItemUpdating(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.ListViewUpdateEventArgs)Handles lsv_lp_manager.ItemUpdating
 

if(
lsv_lp_manager.EditItem.FindControl("ddl_lp_edit")
!= null) THEN
if(
DirectCast(lsv_lp_manager.EditItem.FindControl("ddl_lp_edit"), DropDownList).SelectedValue
!= null ) then
e.NewValues("LigneProduit_lpm") = DirectCast(lsv_lp_manager.EditItem.FindControl("ddl_lp_edit"), DropDownList).SelectedValue
end if
END if
EndSub  

Il y a deux cas ou ca peut etre null.

Desolé pour le melange de C# et VB.net
0
acbdev Messages postés 9 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 5 mai 2009
12 déc. 2008 à 11:25
Merci beaucoup pour ce conseil que j'ai appliqué mais j'obtiens le même message d'erreur.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 déc. 2008 à 14:17
Avec le debugger ca te donnes quelle instruction

Essaye avec les espions dans la fenetre espions
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
acbdev Messages postés 9 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 5 mai 2009
12 déc. 2008 à 14:53
cela me donne le message suivant :

L'exception System.NullReferenceException n'a pas été gérée par le code utilisateur

sur ddl_lp_edit ou LigneProduit_lpm ou @LigneProduit_lpm

En mode 'insert' mon code fonctionne parfaitement.

Avec une textbox à la place de la dropdownlist, mon update se réalise parfaitement sans code-behind.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 déc. 2008 à 15:03
Ca m'aide pas beaucoup

lsv_lp_manager.EditItem.FindControl("ddl_lp_edit") est null ??

ou

DirectCast(lsv_lp_manager.EditItem.FindControl("ddl_lp_edit"), DropDownList).SelectedValue

est null?

Regardes sur le site www.asp.net (il y a des exemples de dropdownlist dans les gridviews.
0
acbdev Messages postés 9 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 5 mai 2009
12 déc. 2008 à 17:05
Merci beaucoup pour tes conseils.

J'ai trouvé une seule source qui traite de mon problème. la solution est en C# et très succinte.

Les autres exemples dont tu parles fonctionnent en framework 2.0 mais pas dans la version 3.5 sur une listview. (bug microsoft sur le databinding de la dropdownlist dans une listview)

J'essaie de contourner le problème en modifiant l'updatecommand dans le code.

Bon week-end
0
Rejoignez-nous