Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNDéveloppementDéveloppement[DNN4] Condition dans un gridView[DNN4] Condition dans un gridView
Précédente
 
Suivante
Nouveau message
29/07/2009 13:57
 

Bonjour à tous,

J'ai un gridview attaché aux données, je les affiche soit avec:

<a name="<%# ((int)DataBinder.Eval(Container.DataItem,"ItemID")).ToString() %>" />

Ou alors:

        <ItemTemplate>
        <asp:Label ID="lblFirstName" runat="server" Text='<%# Bind("FirstName") %>' Width="100%"></asp:Label>
        </ItemTemplate>
De ces manières, pas de problèmes.

Seulement, j'aimerais faire une condition dans mon itemTemplate... Un peu comme ça:

        <ItemTemplate>
        <% if (((int)DataBinder.Eval(Container.DataItem, "AffiliateID")) > 0) { %>
        <asp:ImageButton id... />
        <% } else { %>
        <asp:ImageButton id... />
        <% } %>
        </ItemTemplate>
 

Mais de cette manière, il me dit que Container est ambigü... J'ai essayé des bind("AffiliateID") , eval("AffiliateID"), mais rien n'y fait.

Avez vous une idée.

 

Merci d'avance.

 
Nouveau message
29/07/2009 14:26
 

Salut Dacil,

Tu toruveras plus d'infos ici et .

Bon courage

Seb

 
Nouveau message
31/07/2009 10:35
 

Bonjour Seb,

Merci pour votre réponse, je vais plancher ça dans la journée.

J'ai un pb de notification... Je coche bien la case, mais je n'ai jamais d'alerte de réponse par mail.

Donc, entre temps, j'ai vu sur la toile que ce que je voulais faire n'était pas possible.On peut coder dans une balise, mais pas entre deux...

J'ai donc procédé differement... Ce n'est pas exactement le comportement que je désirais, mais ça répond au besoin.

 

 
Nouveau message
31/07/2009 11:57
 

Seb,

Très interessants les articles, ça a éclairci quelques-un de mes points obscurs.

Par contre, ça ne donne pas ce que j'ai besoin.

Dans les commentaires, ils abordent bien le problème (comme quoi, je ne suis pas le seul, ça rassure), mais pas de réponses.

Si je caste comme ça (mon datasource est de type List<userInfo>):

        <ItemTemplate>
        <% if ((int)((System.Data.DataRowView)Container.DataItem)["AffiliateID"]==0) { %>
        ...
        <% } else { %>
        ...
        <% } %>
        </ItemTemplate>


J'ai toujours la même réponse:

    error CS0104: 'Container' est une référence ambiguë entre 'System.ComponentModel.Container' et 'DotNetNuke.Container'

 Et exactement pareil si je fais:

    if (((DotNetNuke.Entities.Users.UserInfo)Container.DataItem).AffiliateID == 0) {

C'est le container qu'il n'aime pas...

 
Nouveau message
31/07/2009 15:30
 

Et si tu ajoutes nominemment l'espace de nom de Container devant ? (<% if ((int)((System.Data.DataRowView)System.ComponentModel.Container.DataItem)["AffiliateID"]==0) { %>)

 
Nouveau message
10/09/2009 18:24
 

Seb,

Non, ça pête:

'DataRowView' est un type dans 'data' et ne peut être utilisé en tant qu'expression.

:-(

Je crois qu'il n'y a rien à faire...

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNDéveloppementDéveloppement[DNN4] Condition dans un gridView[DNN4] Condition dans un gridView