Datagrid et clique sur une ligne !

cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 23 mai 2006 à 11:33
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 - 27 mai 2006 à 12:14
Bonjour a tous,

J'utilises vs 2003 .net avec msde service pack 3 et je liste mes donnees ds un datagrid tout simplement !

je fais juste un substring de la colonne description substring(description,0,50)as description

maintenant ce que je voudrais faire c'est lorsque je clique sur cette colonne description qu'il dans le datagrid qu'il m'ouvre soit une nouvelle fenetre avec la description complete affiche ou alors je place un label et lorsque je clique sur le datagrid je mets la description complete dans le label !

Bref, comment faire pour capter un clique sur une ligne du datagrid et avoir son id !?

Je vous remercie ..

Bonne semaine ..
Christophe
un bouillonnais

9 réponses

fcampagne Messages postés 195 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 13 juillet 2006 3
23 mai 2006 à 11:53
Plus simplement utilise un detailsview ou tu peux faire ce que tu demande avec une ligne de details pour chaque enregistrement de ta liste
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 mai 2006 à 13:25
Bonjour,

le detailsview n'existe pas en .net 1.1 ...

Pour la popup c'est pas compliqué, suffit de rajouter une colonne avec un lien du style [popup.aspx?id=<%# Container.DataItem( ">voir le détails]

pour la description à l'intérieur, il faut utiliser un linkbutton, quand tu clicks dessus tu utilises l'évenement oncommand de ton datagrid et tu pourra faire ce que tu veux, il y a plusieurs exemples utilisant ce principe sur ce site

<hr />Cyril - MVS - MCP
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
23 mai 2006 à 13:54
hello vous deux,

jesusonline => ok j'ai reussi a recuperer l'id en fait dans la page de details.aspx

/ Put user code to initialize the page here
string n Request.QueryString["v"];Label1.Text n;

maintenant je vais faire ma requete qui sera du style :

sqlConnection myConnection = (SqlConnection)Session["myConnection"];

select description from liens where id = "+n

Mais comment afficher le resultat dans un textbox par exemple

je fais faire un sqlcommand puis un excutenonquery et ensuite je fais comment pour lier le textbox a ce resultat !?

Meric

Christophe

ps : mes parents sont venus l'an passe loger chez tes parents et ils se sont vraiment bien plus !
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 mai 2006 à 14:00
J'espere que tu fais pas ca en vrai "select description from liens where id = "+n" mais que tu utilises des procédures stockées pour plus de sécurités ...

pour recuperer un résultat dans un string, il suffit de faire un label1.text = cmd.executescalar() je comprend pas vraiment le problème :s

<hr />Cyril - MVS - MCP
0

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

Posez votre question
fcampagne Messages postés 195 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 13 juillet 2006 3
23 mai 2006 à 14:06
SOrry pour le detailsview, javais pas fait attention au vs2003 :(
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
23 mai 2006 à 14:29
re,

voila ce que je fais en fait !

j'ai bien place une colonne lien ds le datagrid que j'ai formate avec une url?v=id

ce que je voulais faire c'est tout simplement recuperer cet id sur une autre page, executer une autre requete et placer ce resultat dans un textbox !

j'ai fait comme ca !

// Put user code to initialize the page here

string n = Request.QueryString["v"];

//TestLabel1.Text = n;

SqlConnection myConnection = (SqlConnection)Session["myConnection"];
SqlCommand sqlDetails new SqlCommand("select description from liens where id "+n, myConnection);SqlDataReader dataReader;

dataReader = sqlDetails.ExecuteReader();

dataReader.Read();

TextBox1.Text = dataReader.GetString(0);

dataReader.Close();

Oui c'est sur je devrais passer par des sp et non par des commandes sql mais ca fait un moment que je n'ai plus code ...mes derniers codes sources doivent dater de 2 ou 3 ans ! je suis donc en train de me refaire le main sinon j'etais assez actif en mon temps ;-) !

Merci

Christophe
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 mai 2006 à 14:48
pitié non !!!
SqlCommand sqlDetails new SqlCommand("select description from liens where id @n ", myConnection);

SqlCommand.commandType = storedProcedure;

SqlCommand.parameters.add(new SqlParamater("@n", n));

Textbox1.text = sqlCommand.executeScalar();

normalement ca devrait marchait, ca te fait une erreur ? ca te fait quoi ?

<hr />Cyril - MVS - MCP
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
24 mai 2006 à 14:22
salut salut,

je viens d'essayer et il me dit qu'il ne trouve pas la sp !
Could not find stored procedure 'select description from liens where id = 15'.
voici mon code :

// Put user code to initialize the page here

string n = Request.QueryString["v"];
SqlConnection myConnection (SqlConnection)Session["myConnection"];SqlCommand sqlDetails
new SqlCommand("select description from liens where id "+n, myConnection);sqlDetails.CommandType CommandType.StoredProcedure;

sqlDetails.Parameters.Add(

new SqlParameter("@n",n));
TextBox1.Text = Convert.ToString(sqlDetails.ExecuteScalar());

Mais bon ok je suis doki doki avec toi c'est pas terrible comme code du tout mais je me refais la main apres avoir fait autre chose pendant pas mal de temps !

Merci

Christophe
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
27 mai 2006 à 12:14
Salut,

Comme tu n'utilises pas une procédure stockée mais une simple requête SQL, tu peux enlever la ligne :

sqlDetails.CommandType = CommandType.StoredProcedure;

Et là ça devrait marcher

A++

<hr size="2" width="100%" />Nurgle (Antoine)
0
Rejoignez-nous