Pb "tout bete" de DropdownList dans un DataGrid

Résolu
tigrousuperstar Messages postés 5 Date d'inscription samedi 17 avril 2004 Statut Membre Dernière intervention 6 janvier 2005 - 5 janv. 2005 à 21:35
tigrousuperstar Messages postés 5 Date d'inscription samedi 17 avril 2004 Statut Membre Dernière intervention 6 janvier 2005 - 10 janv. 2005 à 22:29
Bonjour a toutes et a tous!

Je désire capter le changement d'index d'une dropdownlist se trouvant dans un datagrid.
J'ai vu plusieurs exemples decrivant la methode a emprunter (d'où le 'tout bete'), seulement je ne parviens pas a obtenir quelque chose qui marche!

Vous verrez que le code est ultra-simple! (cf ci-dessous)
Pourtant, lorsque l'on change l'index de la liste, la fonction indiquée dans 'onselectedindexchanged' n'est pas appelée!
Mise a part cela, la liste est bien remplie, et il ne me renvoie aucune erreur...

Peut etre est-ce une erreur evidente que je ne vois pas, auquel cas je m'excuse!!!

En tout cas, merci d'avance pour tout ceux qui lirons ce message!

_
_Tigrou

Un petit nouveau qui a decouvert ce site cet été pendant son stage et qui le fréquente régulièrement depuis ;-)

Le code source:

<%@ Page Language="C#" Trace="true" Debug="true" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Data" %>
<script runat="server">


String sconnec=ConfigurationSettings.AppSettings["ConnectionString"];
String rq;
SqlDataAdapter adapt;
DataSet dtst;

void Page_Load(){
dtst = new DataSet("Data_Set");

// Alors les 6 lignes ci dessous ne servent qu'a faire un datagrid d'une ligne. C'est surement super crade, desolé, mais j'ai pas vraiment trouvé de solutions pour faire un datagrid d'une ligne.
rq = "SELECT idattente FROM Attente WHERE idAttente=24";
adapt = new SqlDataAdapter(rq,sconnec);
adapt.Fill(dtst,"attente");
dtgd.DataSource=dtst;
dtgd.DataKeyField="idattente";
dtgd.DataBind();

// La requete pour remplir ma liste
rq = "SELECT nomClients, idClients FROM Clients";
adapt = new SqlDataAdapter(rq,sconnec);
adapt.Fill(dtst,"table");

// On recupere la dropdownlist dans le datagrid
DropDownList ddl = (DropDownList)dtgd.Items[0].Cells[1].Controls[1];
// On remplit la liste
ddl.Items.Clear();
ddl.DataSource = dtst;
ddl.DataMember = "table";
ddl.DataTextField = "nomClients";
ddl.DataValueField = "idClients";
ddl.DataBind();
}

//La fonction devant etre appelée lorsque l'on change l'index de la liste
protected void ddlclient_changed(Object Sender, EventArgs e){
l.Text=" Salut ";
}


</script>
<html>
<head>
</head>

<form runat="server">

<HeaderStyle backcolor="black" forecolor="white" />

<Columns>
















</Columns>






</form>

</html>

2 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 janv. 2005 à 02:46
J'ai testé car j'avais pas vu la connerie au premier abord



et voici ce que j'ai "pondu"

void Page_Load(){

if (!IsPostBack )

{

Trace.Warn("Page Load");

//TonCode

}



}



//La fonction devant etre appelée lorsque l'on change l'index de la liste

protected void ddlclient_changed(Object Sender, EventArgs e){

l.Text=" Salut ";

Trace.Warn("ddl Changed");

}



J'avais déjà une instance de VS.net d'ouvert donc ca allait bien
j'ai pas fais grand chose comme tu peux le voir, j'ai juste rajouter le
if !ispostBack c'est tout, ce qui permet de ne pas recharger tout ton
code, et c'est la que ca plantait car ton ddl se rechargeait à nouveau
et comme le page load s'effectue avant le declenchement des events,
l'evenement ne pouvait pas etre declenché car le post back faisait
reference à un controle qui venait tout juste d'etre reinitialisé (oula
je suis pas clair je crois ) Ce que j'ia rajouté aussi c'est les Trace.Warn qui sont bien pratique pour regarder ou passe le code



A noter tu as recemment découvert Csharpfr.Com mais as tu déjà
decouvert aspfr.com ? c'est le meme site, sauf que c'est pour asp, et
t'as plus de chance de réponse je suis tout les jours la bas, ici
beaucoup moins souvent







<hr style="width: 100%; height: 2px;">Cyril
3
tigrousuperstar Messages postés 5 Date d'inscription samedi 17 avril 2004 Statut Membre Dernière intervention 6 janvier 2005
10 janv. 2005 à 22:29
Ok ok !



Merci et désolé de ne pas avoir répondu plus tot!

En plus c'est quand meme une erreur de grand débutant.....



Merci beaucoup !!!

_

_Tigrou
0
Rejoignez-nous