Datagrid et dropdownlist

amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 - 10 mai 2006 à 00:02
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 - 10 mai 2006 à 09:03
bonjour, j' ai un probleme avec mon datagrid , ce que je veux faire c'est creer une colone sous forme d'un dropdownlist dans mon datagrid au moment de L'edition d'une ligne selectioné
pour que l'utilisateur puisse choisir se qu'il veut .voila mon code qui est tiré de 548 http://www.c2i.fr/code.aspx?IDCode=548



Private
Sub Page_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

If
Not IsPostBack
Then
BindData()

End
If
End
Sub



Sub BindData()
Ds.Clear()
gride.DataSource =
Nothing
SQL = "select EntrpriseZoneExport.*,ZoneExport.[Zone] as NomZone from EntrpriseZoneExport,ZoneExport where EntrpriseZoneExport.[Zone]=ZoneExport.cle and EntrpriseZoneExport.Entreprise=" & Session("codeEntrep")
cnx =
New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Projet_Cnce.mdb")adapter =
New OleDbDataAdapter(SQL, cnx)
adapter.Fill(Ds, "Matable")
adapter.Dispose()
gride.DataSource = Ds.Tables("Matable")
DataBind()

End
Sub





Private
Sub BindZone(
ByVal dp
As DropDownList)
dp =
New DropDownList
cnx =
New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Projet_Cnce.mdb")

Dim sSQL
As
String = "SELECT cle,[Zone] FROM ZoneExport"
adapter =
New OleDbDataAdapter(sSQL, cnx)
adapter.Fill(Ds, "ZoneExport")
adapter.Dispose()
dp.DataSource = Ds.Tables("ZoneExport")
dp.DataTextField = "Zone"
dp.DataValueField = "cle"
dp.DataBind()

End
Sub



Private
Sub gride_ItemDataBound(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.DataGridItemEventArgs)
Handles gride.ItemDataBound

If e.Item.ItemIndex = gride.EditItemIndex
AndAlso e.Item.ItemIndex <> -1
Then
Dim dpZone
As DropDownList =
CType(e.Item.FindControl("dpZone"), DropDownList)
BindZone(dpZone)
dpZone.SelectedValue =
CType(e.Item.DataItem, DataRowView)("NomZone").ToString

End
If
End
Sub



Private
Sub gride_EditCommand(
ByVal source
As
Object,
ByVal e
As System.Web.UI.WebControls.DataGridCommandEventArgs)
Handles gride.EditCommand
gride.EditItemIndex = e.Item.ItemIndex
BindData()

End
Sub



Private
Sub gride_CancelCommand(
ByVal source
As
Object,
ByVal e
As System.Web.UI.WebControls.DataGridCommandEventArgs)
Handles gride.CancelCommand
gride.EditItemIndex = -1
BindData()

End
Sub

Le probleme c'est qu'il me lance l'erreur suivante:


La référence d'objet n'est pas définie à une instance d'un objet.


Ligne 59 : Dim dpZone As DropDownList = CType(e.Item.FindControl("dpZone"), DropDownList)
Ligne 60 : BindZone(dpZone)
Ligne 61 : dpZone.SelectedValue = CType(e.Item.DataItem, DataRowView)("NomZone").ToString
Ligne 62 : End If
Ligne 63 : End Sub

y a t il une solution?? j'ai vraiment besoin c'est urgent
Merci d'avance

1 réponse

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
10 mai 2006 à 09:03
Salut,

tu pourrais commencer par exécuter ton code en pas à pas et mettre un espion sur e.DataItem. Dans BindData(), je pense que ce doit être gride.DataBind().

@+
0
Rejoignez-nous