bihannic_fr2000
Messages postés8Date d'inscriptionvendredi 3 mars 2006StatutMembreDernière intervention22 mars 2006
-
21 mars 2006 à 10:29
bihannic_fr2000
Messages postés8Date d'inscriptionvendredi 3 mars 2006StatutMembreDernière intervention22 mars 2006
-
22 mars 2006 à 09:59
Bonjour,
Je realise une datagrid au sein de laquelle je fais apparaitre un dropdownlist en mode edititemtemplate.
Quand je passe en mode edit j aimerais qu'il me sélectionne la bonne valeur et pas la premiere de la liste.
Pour ce faire dans le code asp je met:
SelectedIndex= '<%# GetSelectedIndex(DataBinder.Eval(Container.DataItem, "STATDSI_ID").ToString()) %>'
Par contre je galère pour le code behind en C#.
J'ai visité plein de forum met tout est en VB.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 21 mars 2006 à 13:38
bonjour,
Il y a un truc que je ne comprend pas, pourquoi ne set tu pas le selecteditem lorsque tu bind le controle ? à mon avis c'est la le problème.
A ta place je m'abonnerais à l'evenement item_databound du datagrid je rechercherais le controle avec e.item.findcontrol et je setterais le selectedindex :)
myCommand.CommandText="select 0 as STATDSI_ID,'' as STATDSI_LIBELLE from dual union select STATDSI_ID,STATDSI_LIBELLE FROM PARAM_STAT_MAT_DSI ORDER BY STATDSI_ID";
System.Data.OracleClient.OracleDataAdapter daSTATUT =
new OracleDataAdapter(myCommand);
ddl.DataSource = myCommand.ExecuteReader();
ddl.DataTextField = "STATDSI_LIBELLE";
ddl.DataValueField = "STATDSI_ID";
ddl.DataBind();
//fermeture ORACLE
oOracleConn.Close();
//selection du bon STATUT
int currentSTATUTID = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "STATDSI_ID"));
ListItem li = ddl.Items.FindByValue(currentSTATUTID.ToString());
bihannic_fr2000
Messages postés8Date d'inscriptionvendredi 3 mars 2006StatutMembreDernière intervention22 mars 2006 21 mars 2006 à 16:47
Salut jesusonline,
J'ai suivi des conseil et utilisé l'évenement item_databoud du datagrid...
tout est Ok a la compil mais error a l 'affichage:
La référence d'objet n'est pas définie à une instance d'un objet.
Merci aux yeux experts qui trouveront ma bourde en un clin d'oeil
public object ddlSTATUTLoad()
{
// Remplissage ddl Nom Prenom
//Ouverture connexion à la base LEAD
OracleConnection oOracleConn = new OracleConnection ();
oOracleConn.ConnectionString = ConfigurationSettings.AppSettings.Get("GEF_connectionstring");
oOracleConn.Open();
OracleCommand myCommand = oOracleConn.CreateCommand();
try
{
System.Data.DataSet dsSTATUT = new System.Data.DataSet();
//myCommand.CommandText="SELECT STATDSI_ID,STATDSI_LIBELLE FROM PARAM_STAT_MAT_DSI ORDER BY STATDSI_LIBELLE";
myCommand.CommandText="select 0 as STATDSI_ID,'' as STATDSI_LIBELLE from dual union select STATDSI_ID,STATDSI_LIBELLE FROM PARAM_STAT_MAT_DSI ORDER BY STATDSI_ID";
System.Data.OracleClient.OracleDataAdapter daSTATUT = new OracleDataAdapter(myCommand);
daSTATUT.Fill(dsSTATUT,"Statut");
return dsSTATUT;
}
catch(Exception l_Exception)
{
Console.WriteLine(l_Exception.ToString());
return null;
}
finally
{
oOracleConn.Close();
}
}