J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le code
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le code
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le code
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
<Columns>
<asp:TemplateColumn HeaderText="[]"><ItemTemplate><asp:Checkbox
id="chkSelect"
Runat="server"></asp:Checkbox></ItemTemplate></asp:TemplateColumn>
<asp:BoundColumn DataField="title" HeaderText="title"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="publisher">
<ItemTemplate><asp:label id=lblPublisher runat="server" Text= '<%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name")
%>'></asp:label></ItemTemplate>
<EditItemTemplate><asp:dropdownlist id="ddlPublishers" runat="server"
DataValueField="pub_id"
DataTextField="pub_name"></asp:dropdownlist></EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="type" HeaderText="type">
</asp:BoundColumn>
<asp:BoundColumn DataField="price" HeaderText="price">
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="Mettre à
jour" HeaderText="edit" CancelText="Annuler" EditText="Modifier">
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Supprimer" ButtonType="PushButton"
HeaderText="delete" CommandName="Delete">
</asp:ButtonColumn>
<asp:HyperLinkColumn Text="publisher" DataNavigateUrlField="pub_id"
DataNavigateUrlFormatString="/showpubs.aspx?pub_id={0}" HeaderText="More
Info">
</asp:HyperLinkColumn>
</Columns>
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
<Columns>
<asp:TemplateColumn HeaderText="[]"><ItemTemplate><asp:Checkbox
id="chkSelect"
Runat="server"></asp:Checkbox></ItemTemplate></asp:TemplateColumn>
<asp:BoundColumn DataField="title" HeaderText="title"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="publisher">
<ItemTemplate><asp:label id=lblPublisher runat="server" Text= '<%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name")
%>'></asp:label></ItemTemplate>
<EditItemTemplate><asp:dropdownlist id="ddlPublishers" runat="server"
DataValueField="pub_id"
DataTextField="pub_name"></asp:dropdownlist></EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="type" HeaderText="type">
</asp:BoundColumn>
<asp:BoundColumn DataField="price" HeaderText="price">
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="Mettre à
jour" HeaderText="edit" CancelText="Annuler" EditText="Modifier">
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Supprimer" ButtonType="PushButton"
HeaderText="delete" CommandName="Delete">
</asp:ButtonColumn>
<asp:HyperLinkColumn Text="publisher" DataNavigateUrlField="pub_id"
DataNavigateUrlFormatString="/showpubs.aspx?pub_id={0}" HeaderText="More
Info">
</asp:HyperLinkColumn>
</Columns>
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
<Columns>
<asp:TemplateColumn HeaderText="[]"><ItemTemplate><asp:Checkbox
id="chkSelect"
Runat="server"></asp:Checkbox></ItemTemplate></asp:TemplateColumn>
<asp:BoundColumn DataField="title" HeaderText="title"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="publisher">
<ItemTemplate><asp:label id=lblPublisher runat="server" Text= '<%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name")
%>'></asp:label></ItemTemplate>
<EditItemTemplate><asp:dropdownlist id="ddlPublishers" runat="server"
DataValueField="pub_id"
DataTextField="pub_name"></asp:dropdownlist></EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="type" HeaderText="type">
</asp:BoundColumn>
<asp:BoundColumn DataField="price" HeaderText="price">
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="Mettre à
jour" HeaderText="edit" CancelText="Annuler" EditText="Modifier">
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Supprimer" ButtonType="PushButton"
HeaderText="delete" CommandName="Delete">
</asp:ButtonColumn>
<asp:HyperLinkColumn Text="publisher" DataNavigateUrlField="pub_id"
DataNavigateUrlFormatString="/showpubs.aspx?pub_id={0}" HeaderText="More
Info">
</asp:HyperLinkColumn>
</Columns>
<%Container.DataItem.Row.GetParentRow["PubsTitles"]["pub_name"] %>
Pas vérifié ;-)
<%Container.DataItem.Row.GetParentRow["PubsTitles"]["pub_name"] %>
Pas vérifié ;-)
<%Container.DataItem.Row.GetParentRow["PubsTitles"]["pub_name"] %>
Pas vérifié ;-)
Ben j'avais déjà tenté mais cela ne fonctionne pas.
merci quand même.
Paul Bacelar a écrit :<%Container.DataItem.Row.GetParentRow["PubsTitles"]["pub_name"] %>
Pas vérifié ;-)
Ben j'avais déjà tenté mais cela ne fonctionne pas.
merci quand même.
Paul Bacelar a écrit :
<%Container.DataItem.Row.GetParentRow["PubsTitles"]["pub_name"] %>
Pas vérifié ;-)
Ben j'avais déjà tenté mais cela ne fonctionne pas.
merci quand même.
Paul Bacelar a écrit :<%Container.DataItem.Row.GetParentRow["PubsTitles"]["pub_name"] %>
Pas vérifié ;-)
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le
code
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
<Columns>
<asp:TemplateColumn HeaderText="[]"><ItemTemplate><asp:Checkbox
id="chkSelect"
Runat="server"></asp:Checkbox></ItemTemplate></asp:TemplateColumn>
<asp:BoundColumn DataField="title" HeaderText="title"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="publisher">
<ItemTemplate><asp:label id=lblPublisher runat="server" Text= '<%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name")
%>'></asp:label></ItemTemplate>
<EditItemTemplate><asp:dropdownlist id="ddlPublishers" runat="server"
DataValueField="pub_id"
DataTextField="pub_name"></asp:dropdownlist></EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="type" HeaderText="type">
</asp:BoundColumn>
<asp:BoundColumn DataField="price" HeaderText="price">
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="Mettre à
jour" HeaderText="edit" CancelText="Annuler" EditText="Modifier">
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Supprimer" ButtonType="PushButton"
HeaderText="delete" CommandName="Delete">
</asp:ButtonColumn>
<asp:HyperLinkColumn Text="publisher" DataNavigateUrlField="pub_id"
DataNavigateUrlFormatString="/showpubs.aspx?pub_id={0}" HeaderText="More
Info">
</asp:HyperLinkColumn>
</Columns>
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le
code
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
<Columns>
<asp:TemplateColumn HeaderText="[]"><ItemTemplate><asp:Checkbox
id="chkSelect"
Runat="server"></asp:Checkbox></ItemTemplate></asp:TemplateColumn>
<asp:BoundColumn DataField="title" HeaderText="title"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="publisher">
<ItemTemplate><asp:label id=lblPublisher runat="server" Text= '<%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name")
%>'></asp:label></ItemTemplate>
<EditItemTemplate><asp:dropdownlist id="ddlPublishers" runat="server"
DataValueField="pub_id"
DataTextField="pub_name"></asp:dropdownlist></EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="type" HeaderText="type">
</asp:BoundColumn>
<asp:BoundColumn DataField="price" HeaderText="price">
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="Mettre à
jour" HeaderText="edit" CancelText="Annuler" EditText="Modifier">
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Supprimer" ButtonType="PushButton"
HeaderText="delete" CommandName="Delete">
</asp:ButtonColumn>
<asp:HyperLinkColumn Text="publisher" DataNavigateUrlField="pub_id"
DataNavigateUrlFormatString="/showpubs.aspx?pub_id={0}" HeaderText="More
Info">
</asp:HyperLinkColumn>
</Columns>
J'ai récupéré un exemple de code pour mettre en oeuvre un datagrid. Le
code
qui suit contient une instruction en VB je ne sais pas comment l'écrire en
C#.
Est ce que quelqu'un pourrait me venir en aide.
L'instruction <%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name") %> est censé
faire
une liaison de donneé sur un contrôle label.
<Columns>
<asp:TemplateColumn HeaderText="[]"><ItemTemplate><asp:Checkbox
id="chkSelect"
Runat="server"></asp:Checkbox></ItemTemplate></asp:TemplateColumn>
<asp:BoundColumn DataField="title" HeaderText="title"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="publisher">
<ItemTemplate><asp:label id=lblPublisher runat="server" Text= '<%#
Container.DataItem.Row.GetParentRow("PubsTitles")("pub_name")
%>'></asp:label></ItemTemplate>
<EditItemTemplate><asp:dropdownlist id="ddlPublishers" runat="server"
DataValueField="pub_id"
DataTextField="pub_name"></asp:dropdownlist></EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="type" HeaderText="type">
</asp:BoundColumn>
<asp:BoundColumn DataField="price" HeaderText="price">
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="PushButton" UpdateText="Mettre à
jour" HeaderText="edit" CancelText="Annuler" EditText="Modifier">
</asp:EditCommandColumn>
<asp:ButtonColumn Text="Supprimer" ButtonType="PushButton"
HeaderText="delete" CommandName="Delete">
</asp:ButtonColumn>
<asp:HyperLinkColumn Text="publisher" DataNavigateUrlField="pub_id"
DataNavigateUrlFormatString="/showpubs.aspx?pub_id={0}" HeaderText="More
Info">
</asp:HyperLinkColumn>
</Columns>
Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de la
table PubsTitles dans la clef étrangère correspondant à la clef primaire
de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
mais normalement, pour les liaisons de donnée sur un contrôle Label, vous
devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
N'oubliez pas de mettre votre # après le <% .
--
Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de la
table PubsTitles dans la clef étrangère correspondant à la clef primaire
de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
mais normalement, pour les liaisons de donnée sur un contrôle Label, vous
devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
N'oubliez pas de mettre votre # après le <% .
--
Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de la
table PubsTitles dans la clef étrangère correspondant à la clef primaire
de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
mais normalement, pour les liaisons de donnée sur un contrôle Label, vous
devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
N'oubliez pas de mettre votre # après le <% .
--
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de
la table PubsTitles dans la clef étrangère correspondant à la clef
primaire de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
Oui c'est exactement ce que je veux faire. J'ai construit un dataset avec
le code ci dessous.
System.Data.OleDb.OleDbConnection oledbCN = new
System.Data.OleDb.OleDbConnection();
oledbCN.ConnectionString = Session["ChaineConnexion"].ToString();
oledbCN.Open();
// remplit le DataTable titles
System.Data.OleDb.OleDbDataAdapter daTitles = new
System.Data.OleDb.OleDbDataAdapter("SELECT * FROM TITLES",oledbCN);
daTitles.Fill(ds,"Titles");
//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");
// ferme la connexion
oledbCN.Close();
// cree la relation entre les deux tables
ds.Relations.Add("PubsTitles", ds.Tables["Publishers"].Columns["Pub_id"],
ds.Tables["Titles"].Columns["pub_id"]);
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
Cela ne fonctionne pas j'obtiens le message d'erreur suivant.
DataBinder.Eval : 'System.Data.DataRow' ne comporte pas de propriété
appelée pub_name.mais normalement, pour les liaisons de donnée sur un contrôle Label,
vous devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
... oui pour cette instruction c'est ok.N'oubliez pas de mettre votre # après le <% .
--
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news: eu70ahaTFHA.1148@tk2msftngp13.phx.gbl...
Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de
la table PubsTitles dans la clef étrangère correspondant à la clef
primaire de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
Oui c'est exactement ce que je veux faire. J'ai construit un dataset avec
le code ci dessous.
System.Data.OleDb.OleDbConnection oledbCN = new
System.Data.OleDb.OleDbConnection();
oledbCN.ConnectionString = Session["ChaineConnexion"].ToString();
oledbCN.Open();
// remplit le DataTable titles
System.Data.OleDb.OleDbDataAdapter daTitles = new
System.Data.OleDb.OleDbDataAdapter("SELECT * FROM TITLES",oledbCN);
daTitles.Fill(ds,"Titles");
//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");
// ferme la connexion
oledbCN.Close();
// cree la relation entre les deux tables
ds.Relations.Add("PubsTitles", ds.Tables["Publishers"].Columns["Pub_id"],
ds.Tables["Titles"].Columns["pub_id"]);
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
Cela ne fonctionne pas j'obtiens le message d'erreur suivant.
DataBinder.Eval : 'System.Data.DataRow' ne comporte pas de propriété
appelée pub_name.
mais normalement, pour les liaisons de donnée sur un contrôle Label,
vous devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
... oui pour cette instruction c'est ok.
N'oubliez pas de mettre votre # après le <% .
--
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de
la table PubsTitles dans la clef étrangère correspondant à la clef
primaire de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
Oui c'est exactement ce que je veux faire. J'ai construit un dataset avec
le code ci dessous.
System.Data.OleDb.OleDbConnection oledbCN = new
System.Data.OleDb.OleDbConnection();
oledbCN.ConnectionString = Session["ChaineConnexion"].ToString();
oledbCN.Open();
// remplit le DataTable titles
System.Data.OleDb.OleDbDataAdapter daTitles = new
System.Data.OleDb.OleDbDataAdapter("SELECT * FROM TITLES",oledbCN);
daTitles.Fill(ds,"Titles");
//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");
// ferme la connexion
oledbCN.Close();
// cree la relation entre les deux tables
ds.Relations.Add("PubsTitles", ds.Tables["Publishers"].Columns["Pub_id"],
ds.Tables["Titles"].Columns["pub_id"]);
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
Cela ne fonctionne pas j'obtiens le message d'erreur suivant.
DataBinder.Eval : 'System.Data.DataRow' ne comporte pas de propriété
appelée pub_name.mais normalement, pour les liaisons de donnée sur un contrôle Label,
vous devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
... oui pour cette instruction c'est ok.N'oubliez pas de mettre votre # après le <% .
--
L'exemple que je vous ai donné est celui que j'ai utilisé moi-même dans le
passé; sa syntaxe devrait donc être bonne. Cependant, si votre « row »
est vide ou qu'elle n'a pas de ParentRow; alors là évidemment vous aurez
un message d'erreur.
Vous devriez utiliser le debugger pour voir où vous en êtes rendu après
l'appel à la fonction GetParentRow() ou essayer l'appel à cette function
directement dans votre C# afin de vérifier que vos relations sont
correctes. Vous pouvez également cacher toute cette évaluation dans une
fonction et regarder ce qui se passe en traçant cette fonction.
Cependant, puisque vous dites que cela fonctionne avec <%#
DataBinder.Eval(Container, "DataItem.pub_name") %> ; alors j'imagine que
c'est tout simplement parce que j'ai mal compris comment vous faisiez
votre liaison sur le DataGrid et que vous n'utilisez pas la même méthode
que moi. L'important, c'est que cela fonctionne maintenant.
--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
"grome" wrote in message
news:4275d1dd$0$1554$
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de
la table PubsTitles dans la clef étrangère correspondant à la clef
primaire de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
Oui c'est exactement ce que je veux faire. J'ai construit un dataset avec
le code ci dessous.
System.Data.OleDb.OleDbConnection oledbCN = new
System.Data.OleDb.OleDbConnection();
oledbCN.ConnectionString = Session["ChaineConnexion"].ToString();
oledbCN.Open();
// remplit le DataTable titles
System.Data.OleDb.OleDbDataAdapter daTitles = new
System.Data.OleDb.OleDbDataAdapter("SELECT * FROM TITLES",oledbCN);
daTitles.Fill(ds,"Titles");
//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");
// ferme la connexion
oledbCN.Close();
// cree la relation entre les deux tables
ds.Relations.Add("PubsTitles", ds.Tables["Publishers"].Columns["Pub_id"],
ds.Tables["Titles"].Columns["pub_id"]);
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
Cela ne fonctionne pas j'obtiens le message d'erreur suivant.
DataBinder.Eval : 'System.Data.DataRow' ne comporte pas de propriété
appelée pub_name.mais normalement, pour les liaisons de donnée sur un contrôle Label,
vous devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
... oui pour cette instruction c'est ok.N'oubliez pas de mettre votre # après le <% .
--
L'exemple que je vous ai donné est celui que j'ai utilisé moi-même dans le
passé; sa syntaxe devrait donc être bonne. Cependant, si votre « row »
est vide ou qu'elle n'a pas de ParentRow; alors là évidemment vous aurez
un message d'erreur.
Vous devriez utiliser le debugger pour voir où vous en êtes rendu après
l'appel à la fonction GetParentRow() ou essayer l'appel à cette function
directement dans votre C# afin de vérifier que vos relations sont
correctes. Vous pouvez également cacher toute cette évaluation dans une
fonction et regarder ce qui se passe en traçant cette fonction.
Cependant, puisque vous dites que cela fonctionne avec <%#
DataBinder.Eval(Container, "DataItem.pub_name") %> ; alors j'imagine que
c'est tout simplement parce que j'ai mal compris comment vous faisiez
votre liaison sur le DataGrid et que vous n'utilisez pas la même méthode
que moi. L'important, c'est que cela fonctionne maintenant.
--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
"grome" <no@spam.fr> wrote in message
news:4275d1dd$0$1554$626a14ce@news.free.fr...
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news: eu70ahaTFHA.1148@tk2msftngp13.phx.gbl...
Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de
la table PubsTitles dans la clef étrangère correspondant à la clef
primaire de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
Oui c'est exactement ce que je veux faire. J'ai construit un dataset avec
le code ci dessous.
System.Data.OleDb.OleDbConnection oledbCN = new
System.Data.OleDb.OleDbConnection();
oledbCN.ConnectionString = Session["ChaineConnexion"].ToString();
oledbCN.Open();
// remplit le DataTable titles
System.Data.OleDb.OleDbDataAdapter daTitles = new
System.Data.OleDb.OleDbDataAdapter("SELECT * FROM TITLES",oledbCN);
daTitles.Fill(ds,"Titles");
//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");
// ferme la connexion
oledbCN.Close();
// cree la relation entre les deux tables
ds.Relations.Add("PubsTitles", ds.Tables["Publishers"].Columns["Pub_id"],
ds.Tables["Titles"].Columns["pub_id"]);
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
Cela ne fonctionne pas j'obtiens le message d'erreur suivant.
DataBinder.Eval : 'System.Data.DataRow' ne comporte pas de propriété
appelée pub_name.
mais normalement, pour les liaisons de donnée sur un contrôle Label,
vous devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
... oui pour cette instruction c'est ok.
N'oubliez pas de mettre votre # après le <% .
--
L'exemple que je vous ai donné est celui que j'ai utilisé moi-même dans le
passé; sa syntaxe devrait donc être bonne. Cependant, si votre « row »
est vide ou qu'elle n'a pas de ParentRow; alors là évidemment vous aurez
un message d'erreur.
Vous devriez utiliser le debugger pour voir où vous en êtes rendu après
l'appel à la fonction GetParentRow() ou essayer l'appel à cette function
directement dans votre C# afin de vérifier que vos relations sont
correctes. Vous pouvez également cacher toute cette évaluation dans une
fonction et regarder ce qui se passe en traçant cette fonction.
Cependant, puisque vous dites que cela fonctionne avec <%#
DataBinder.Eval(Container, "DataItem.pub_name") %> ; alors j'imagine que
c'est tout simplement parce que j'ai mal compris comment vous faisiez
votre liaison sur le DataGrid et que vous n'utilisez pas la même méthode
que moi. L'important, c'est que cela fonctionne maintenant.
--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
"grome" wrote in message
news:4275d1dd$0$1554$
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:Cette commande ne fait pas seulement la liaison avec une étiquette de
donnée mais recherche également la valeur correspondante "pub_name" de
la table PubsTitles dans la clef étrangère correspondant à la clef
primaire de la fiche courante.
Cette commande ne marchera évidemment pas si vous n'avez pas établit de
relation entre votre table PubsTitles et la table courante dans votre
dataset. Si c'est vraiment ce que vous voulez et que vous voulez faire
un lookup sur la clef secondaire, la syntaxe complète en C# est:
Oui c'est exactement ce que je veux faire. J'ai construit un dataset avec
le code ci dessous.
System.Data.OleDb.OleDbConnection oledbCN = new
System.Data.OleDb.OleDbConnection();
oledbCN.ConnectionString = Session["ChaineConnexion"].ToString();
oledbCN.Open();
// remplit le DataTable titles
System.Data.OleDb.OleDbDataAdapter daTitles = new
System.Data.OleDb.OleDbDataAdapter("SELECT * FROM TITLES",oledbCN);
daTitles.Fill(ds,"Titles");
//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");
// ferme la connexion
oledbCN.Close();
// cree la relation entre les deux tables
ds.Relations.Add("PubsTitles", ds.Tables["Publishers"].Columns["Pub_id"],
ds.Tables["Titles"].Columns["pub_id"]);
<asp:Label runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow
("PubsTitles"), "pub_name") %>' ID="Label4" />
Cela ne fonctionne pas j'obtiens le message d'erreur suivant.
DataBinder.Eval : 'System.Data.DataRow' ne comporte pas de propriété
appelée pub_name.mais normalement, pour les liaisons de donnée sur un contrôle Label,
vous devriez utiliser quelque chose comme:
... <%# DataBinder.Eval(Container, "DataItem.pub_name") %> ...
... oui pour cette instruction c'est ok.N'oubliez pas de mettre votre # après le <% .
--
Bon en fait voilà comment je m'en suis sorti.
J'ai créé une fonction
public string GetPubName(DataRow dr)
{
string spubname = dr.GetParentRow("pubstitles").ItemArray[1].ToString()
;
return spubname;
}
dans le code html j'ai ceci
<asp:label id=lblPublisher runat="server" Text='<%# GetPubName
(((System.Data.DataRowView)Container.DataItem).Row ) %>'>
</asp:label>
Je n'ai pas réussi à l'écrire avec le Databinder.Eval.
Merci milles fois pour votre aide.
Bon en fait voilà comment je m'en suis sorti.
J'ai créé une fonction
public string GetPubName(DataRow dr)
{
string spubname = dr.GetParentRow("pubstitles").ItemArray[1].ToString()
;
return spubname;
}
dans le code html j'ai ceci
<asp:label id=lblPublisher runat="server" Text='<%# GetPubName
(((System.Data.DataRowView)Container.DataItem).Row ) %>'>
</asp:label>
Je n'ai pas réussi à l'écrire avec le Databinder.Eval.
Merci milles fois pour votre aide.
Bon en fait voilà comment je m'en suis sorti.
J'ai créé une fonction
public string GetPubName(DataRow dr)
{
string spubname = dr.GetParentRow("pubstitles").ItemArray[1].ToString()
;
return spubname;
}
dans le code html j'ai ceci
<asp:label id=lblPublisher runat="server" Text='<%# GetPubName
(((System.Data.DataRowView)Container.DataItem).Row ) %>'>
</asp:label>
Je n'ai pas réussi à l'écrire avec le Databinder.Eval.
Merci milles fois pour votre aide.