cs_grome
Messages postés25Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention 3 mai 2005
-
29 avril 2005 à 09:31
dibouched
Messages postés219Date d'inscriptionsamedi 21 août 2004StatutMembreDernière intervention17 juillet 2007
-
3 mai 2005 à 15:45
Bonjour à tous,
Je mets en oeuvre un datagrid pour la consultation et la mise à jour
d'une base de données. Ce Datagrid contient une colonne modèle. En mode
affichage il y a un label pour afficher les données et mode édition
c'est une dropdownlist. Pour mettre en oeuvre ce Datagrid je me suis
appuyé sur un exemple vb.net que j'ai traduis en C#. Seulement voilà il
y a une instruction que je n'arrive pas à traduire malgré mes
recherches. Cette instruction est dans le source html de la page qui
contient le datagrid. Ci dessous l'instruction en VB.NET dans le code
de définition du datagrid que je voudrais traduire en C#. J'ai essayé
les crochets mais sans succès.
tu la remplace par
<%#DataBinder.Eval(Container,"DataItem.ProductName") %>
<%#DataBinder.Eval(Container,"DataItem.ProductName") %>#DataBinder.Eval(Container,"DataItem.non_du_champ_que_tu_veux_l'afficher")
cs_grome
Messages postés25Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention 3 mai 20052 29 avril 2005 à 16:56
J'utilise un dataset pour alimenter mon datagrid. Ce dataset est
composé de deux tables publisher et titles de la base de données
d'exemple PUBS de sql server. J'ai dans mon dataset une relation
pubstitles. Le but est d'afficher dans le datagrid le publisher de
chaque title au travers de la relation définit dans le dataset. La
colonne en question est basée sur un modèle.
j'ai essayé ta solution en codant ceci.<%#DataBinder.Eval(Container, "DataItem.pub_name")
j'obtiens ceci
Détails de l'exception: System.Web.HttpException: DataBinder.Eval :
'System.Data.DataRowView' ne comporte pas de propriété appelée pub_name.
dibouched
Messages postés219Date d'inscriptionsamedi 21 août 2004StatutMembreDernière intervention17 juillet 20072 29 avril 2005 à 17:01
s'il te pali me le code de ta requete
est ce que tu as un champ qui s'appelle pub_name
dans la table que tu mets ces valeurs dans la dataset
si non ou bien tu utilise un datatable ou bien
envoyer moi le resultat d'execution de ton requete en mode sql je vais te guider
DiBou
email:dibouched@yahoo.fr
Vous n’avez pas trouvé la réponse que vous recherchez ?
le dataset est correctement rempli, l'erreur se déclenche sur le
chargement de la page qui contient le datagrid. Cette erreur est
provoquée à cause de la ligne <%Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name")%> C'est un ligne VB alors que je voudrais l'ecrire en C#.
Ensuite pour remplir le DataGrid j'utilise ceci
void BindDataGrid()
{
//lie la source de données au datagrid.
dgrTitles.DataSource = ds.Tables["Titles"];
dgrTitles.DataKeyField = "title_id";
dgrTitles.DataBind();
//Si on est en mode édition on lie également le contrôle ddlPublishers.
if (dgrTitles.EditItemIndex >= 0 )
{
//récupère une référence au controle ddlPublishers...
dibouched
Messages postés219Date d'inscriptionsamedi 21 août 2004StatutMembreDernière intervention17 juillet 20072 29 avril 2005 à 17:54
dgrTitles.DataSource = ds.Tables["Titles"].defaultview;
ensuite pour le deux premiers dataset
tu utilise une seule requetté et comme ca tu utilse
. <%#DataBinder.Eval(Container, "DataItem.pub_name")
pour que tu teste ton resultat et tu comprend mieu
essaye de faire uniquement ce qui suit ensuite c'est toi qui va tout comprendre
//remplit le datatable Publishers (avec les champs voulus)
System.Data.OleDb.OleDbDataAdapter daPubs = new System.Data.OleDb.OleDbDataAdapter("SELECT pub_id , pub_name FROM PUBLISHERS",oledbCN);
daPubs.Fill(ds,"Publishers");
et
.<%#DataBinder.Eval(Container, "DataItem.pub_name")
essaye ca uniquement ensuite tu vas comprendre comment tu fais
maintenant j'ai pas assez de temps ,je rentre maintenant
au lundi
mais essaye ca tous simplement tu va arrive
Avec cette instruction je devrais pas être
loin mais cela ne fonctionne pas. Normalement l'opérande
Container.DataItem retourne un objet DataRowView, qui ne permet pas de
traverser les relations. Cependant, il expose la propriété Row, qui
retourne un objet DataRow correspondant et permet d'utiliser la méthode
GetParentRow afin de choisir le nom de l'éditeur au travers de la
relation PubsTitles.
dibouched
Messages postés219Date d'inscriptionsamedi 21 août 2004StatutMembreDernière intervention17 juillet 20072 2 mai 2005 à 13:51
alors qu'est ce que ce qui ne va pas maintenant ?
tu as deux table essaye d'utiliser une seule requette afin de former un enregistement qui ciontient l'ensemble de tes champ et affiche ce que tu veux