2010-11-02 9 views
1

Voici ce que j'ai (travail):Comment afficher une valeur de ressource dans une colonne gridview, en fonction de la valeur d'une autre colonne?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
<Columns>       
    <asp:BoundField HeaderText="Id" DataField="Id" SortExpression="Id"> 
    </asp:BoundField> 
    <asp:BoundField HeaderText="Name" DataField="Name" SortExpression="Name"> 
    </asp:BoundField> 
    <asp:TemplateField>       
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<% $Resources: Resource, strYes %>' /> 
     <br /> 
     <asp:Label ID="Label2" runat="server" Text='<%# Equals("name1",Eval("Name")) %>' /> 
     <br /> 
     <asp:Label ID="Label3" runat="server" Text='<%# Eval("Name") %>' /> 
     <br /> 
    </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 
</asp:GridView> 

Ce que je voulais est quelque chose comme (ne fonctionne pas):

<asp:Label ID="Label4" runat="server" Text='<% (Equals("a",Eval("Name"))) $Resources: Resource, strYes : $Resources: Resource, strNo %>' /> 

mais que je ne l'ai pas trouvé comment faire ça marche! (Ainsi, en fonction de la valeur d'une colonne précédente, affichez l'un ou l'autre élément Ressource).

Aucune suggestion pour ce faire? Merci!

Répondre

2

Je pense que le plus simple est d'utiliser la valeur de retour d'une fonction de texte de votre étiquette:

<asp:Label Text="<%# GetLabelText(Container.DataItem) %>" ID="Label1" runat="server" /> 

Et puis dans le fichier .cs

protected string GetLabelText(object dataItem) { 
    DataRowView dataRowView = (DataRowView)dataItem; 
    string name = (string)dataRowView.Row["Name"]; 
    return "some string with some logic"; 
} 
+0

fonctionne très bien, merci! – naruu

Questions connexes