OVH Cloud OVH Cloud

liaison de donnée sur label dans un datagrid

13 réponses
Avatar
grome
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 &#224;
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>

3 réponses

1 2
Avatar
grome
quand je fais

<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow("pubstitles").ItemArray[1],
"pub_name" ) %>

j'obtiens ceci

System.Web.HttpException: DataBinder.Eval : 'System.String' ne comporte pas
de propriété appelée pub_name.

C'est à ce genre d'instruction que vous pensiez ?





Et si vous affichez le nom de la colonne ItemArray [i], qu'est-ce que cela
donne?

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC




Avatar
Sylvain Lafontaine
Non, pas exactement, je pensais plutôt à l'utilisation de ToString()
directement sur ...ItemArray[i] ainsi que sur ...ItemArray[1].Name; afin de
savoir ce qu'est réellement cet object. Cependant, je n'ai pas de banc
d'essai actuellement, je ne peux donc vérifier de mon côté.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC


"grome" wrote in message
news:42789315$0$309$
quand je fais

<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow("pubstitles").ItemArray[1],
"pub_name" ) %>

j'obtiens ceci

System.Web.HttpException: DataBinder.Eval : 'System.String' ne comporte
pas de propriété appelée pub_name.

C'est à ce genre d'instruction que vous pensiez ?





Et si vous affichez le nom de la colonne ItemArray [i], qu'est-ce que
cela donne?

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC








Avatar
grome
Et bien çà ne fonctionne pas non plus j'ai vraiment un soucis avec le
DataBinder.Eval bon de toute fàçon ma fonction ... fonctionne.

DataBinder.Eval : 'System.String' ne comporte pas de propriété appelée
pub_name.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Web.HttpException: DataBinder.Eval :
'System.String' ne comporte pas de propriété appelée pub_name.

Erreur source:

Ligne 35 : <ItemStyle Wrap="False"></ItemStyle>
Ligne 36 : <ItemTemplate>
Ligne 37 : <asp:label id=lblPublisher runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow("pubstitles").ItemArray[1].ToString(),
"pub_name") %>'>
Ligne 38 : </asp:label>
Ligne 39 : </ItemTemplate>


et
Erreur de compilation
Description : Une erreur s'est produite lors de la compilation d'une
ressource requise pour répondre à cette demande. Veuillez consulter
ci-dessous les détails relatifs à l'erreur en question, puis modifier votre
code source de manière appropriée.

Message d'erreur du compilateur: CS0117: 'object' ne contient pas de
définition pour 'Name'

Erreur source:


Ligne 35 : <ItemStyle Wrap="False"></ItemStyle>
Ligne 36 : <ItemTemplate>
Ligne 37 : <asp:label id=lblPublisher runat="server" Text='<%#
DataBinder.Eval(((System.Data.DataRowView)Container.DataItem).Row.GetParentRow("pubstitles").ItemArray[1].Name.ToString(),
"pub_name") %>'>
Ligne 38 : </asp:label>
Ligne 39 : </ItemTemplate>




"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
Non, pas exactement, je pensais plutôt à l'utilisation de ToString()
directement sur ...ItemArray[i] ainsi que sur ...ItemArray[1].Name; afin
de savoir ce qu'est réellement cet object. Cependant, je n'ai pas de banc
d'essai actuellement, je ne peux donc vérifier de mon côté.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC




1 2