Question

J'ai un SiteMapProvider personnalisé qui charge les pages de la base de données.

  

Pages (pageid, fk_pageid (parent), titre, url, show_in_menu)

Je voudrais mondialiser / localiser la title de la page. Quelle est la meilleure méthode?

Était-ce utile?

La solution

Lorsque vous créez vos objets SiteMapNode, utilisez le constructeur qui vous permet de spécifier les clés de ressources implicites / explicites. Je vous conseille d'aller avec des clés de ressources explicites.

http://msdn.microsoft.com/en-us/library/ ms150104.aspx

«Pour spécifier par programmation des ressources pour la localisation, soit régler la valeur de implicitResourceKey à un nom unique qui sera utilisé pour identifier les ressources localisées pour le noeud ou définir explicitResourceKeys à une collection NameValueCollection de paires nom / valeur dont le nom est la propriété du noeud ou attribut personnalisé pour localiser et la valeur contient des valeurs de localisation de la propriété de nœud ou d'un attribut personnalisé. les valeurs localisées peuvent être définies dans les fichiers .resx appropriés. pour plus d'informations sur la façon de localiser le titre, la description et les propriétés personnalisées d'un objet SiteMapNode, voir Comment:.. les données du site Localize-Carte pour les besoins de syntaxe de la collection explicitResourceKeys, voir NameValueCollection "

Normalement, pour localiser une statique plan du site, vous pouvez utiliser une expression de ressource comme ce qui suit:. "$Resources:<ClassName>,<KeyName>,<DefaultValue>"

Au lieu de cela, ajoutez le <ClassName>, <KeyName>, et les valeurs de <DefaultValue> au explicitResourceKey NameValueCollection dans l'ordre où ils apparaissent dans l'expression, tout ajouté en utilisant la même clé.

Donc, si votre expression aurait été "$Resources:SiteMapResourceFileOrClass,RootNode.Title,My Root Node", au lieu procédez comme suit:

explicitResourceKeys.Add("Title", "SiteMapResourceFileOrClass")
explicitResourceKeys.Add("Title", "RootNode.Title")
explicitResourceKeys.Add("Title", "My Root Node")

Vous pouvez faire la même chose pour la description.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top