2010-12-02 4 views
1

J'ai un gridview qui affiche les lignes et les colonnes toutes liées à une instruction sql ... et tout fonctionne normalement.Afficher l'image dans gridview en fonction de la valeur de la colonne

Je souhaite inclure une nouvelle colonne, qui affiche une image en fonction de la valeur de la colonne. Si la colonne a une valeur - il affichera une image. Si la valeur de la colonne est nulle, aucune image ne sera affichée.

Mon sql est quelque chose comme:

SELECT c.call_id, title, a.call_id as b_attach 
FROM calls c 
LEFT JOIN attachments a ON c.call_id = a.call_id 
GROUP BY c.call_id,title,description, a.call_id 

retours est ce de cette sql est:

call_id | titre | b_attach
1235 | titre va ici | 1235
1382 | un autre titre | NULL

Donc, s'il y a quelque chose dans b_attach - image diplay dans la colonne GridView, rien d'affichage autre dans la colonne GridView

Mon Gridview:

     <asp:HyperLinkField SortExpression="call_id" HeaderText="Call id" DataTextField="call_id" 
          DataNavigateUrlFields="call_id" DataNavigateUrlFormatString="showcall.aspx?id={0}" /> 
         <asp:HyperLinkField SortExpression="Title" HeaderText="Title" DataTextField="title" 
          DataNavigateUrlFields="call_id" DataNavigateUrlFormatString="showcall.aspx?id={0}" /> 

        </Columns> 

Toutes les idées sur la façon de le faire?

Répondre

1

Vous pouvez utiliser un TemplateField, et, à l'intérieur quelque chose comme ceci:

<asp:Image runat="server" id="myImg" ImageUrl='<%# GetImage(DataBinder.Eval(Container.DataItem, "b_attach")) >%' visible='<%# null != DataBinder.Eval(Container.DataItem, "b_attach") %> /> 
+0

ok cela m'a certainement eu sur la bonne voie. Cela n'a pas fonctionné exactement (quelque chose à faire avec null et system.dbnull) que je ne pouvais pas sembler être réparé. J'ai changé b_attach en un booléen (bit) quand retourné, et pourrait alors laisser dehors la partie nulle. Donc, juste avec: Visible = '<% # DataBinder.Eval (Container.DataItem, "b_attach")%>' .Image url était juste juste un chemin droit à l'image aucun code requis. Merci! – thegunner

Questions connexes