2009-08-06 9 views
0

Je fais un peu d'étiquetage. Je voudrais ajouter une clé de ressource (s, s) à l'une de mes boîtes combo avec un élément [3sec, 5sec, 10sec, 30sec ...] et de l'utiliser comme:Comment utiliser les ressources ASP.NET de cette manière?

Text="3<%$ Resources: myResource, s%>" to get comboBoxItem 3sec, 
Text="5<%$ Resources: myResource, s%>" to get comboBoxItem 5sec ... 

Mais je trouve que la le serveur traitera ceci comme texte simple. Dois-je définir chaque élément dans une paire de clés de ressources distincte?

Répondre

0

Vous pouvez le faire comme ça (avec un DataBind() appeler quelque part):

Text='<%# "3" + Resources.myResource.s %>' 

Modifier: Vous pouvez aussi le faire à partir du code derrière. Quelque chose comme ceci:

int[] times = new int[]{ 3, 5, 10, 30 }; 
foreach (int time in times) 
{ 
    string text = time.ToString() + Resources.myResource.s; 
    cbo.Items.Add(new ListItem(text, time.ToString())); 
} 

Edit 2: Selon l'observation de Muhammad le premier exemple ne fonctionne pas pour cela. Je l'ai utilisé pour d'autres contrôles, et je n'ai pas vu que dans le cas actuel ce n'est pas correct. Étant donné cela je remplirais le contrôle du code derrière.

+1

J'ai vérifié, cela donne error..Text = '<% # "3" + Ressources .myResource.s%> ' –

0

Vous pouvez créer votre propre custom expression builder. Ils sont vraiment puissants si vous voulez réaliser ce que vous avez demandé dans votre question. Ou, vous pouvez toujours le faire en utilisant le code côté serveur.

2

Tenir compte de définir votre valeur d'entrée de fichier de ressources comme suit:

{0}sec 

Et puis

String.Format(Resources.myResource.s, "3") 
+0

Comment allez-vous écrire cela dans la page aspx/ascx? – Kirtan

+0

Peut-être comme: '<% # String.Format (" 3 {0} ", Resources.myResource.s)%>'. Je ne sais pas si la méthode de Ben fonctionne, mais si c'est le cas, ce serait plutôt cool. +1 – Cerebrus

+0

La méthode de Ben ne semble pas fonctionner ... – Jay

Questions connexes