amylee1984
Messages postés153Date d'inscriptionmardi 1 novembre 2005StatutMembreDernière intervention20 août 2006
-
10 mai 2006 à 00:02
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 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
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 20094 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().