2011-01-11 6 views
1

J'ai un problème avec la localisation dans ASP.net. J'ai généré les ressources et lié la propriété text par une variable. Dans le fichier source.Problème de localisation explicite d'Asp.net

<asp:Label ID="Label1" runat="server" Text='<%# Eval("name") %>' meta:resourcekey="Label1Resource1"></asp:Label> 
Code

derrière

protected string name; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     name = "Hello World"; 
    } 

Les choses ci-dessus sont simples mais quand je lance le projet. Je suis

Parser Error 

Description: Une erreur est survenue lors de l'analyse d'une ressource nécessaire pour cette demande. Veuillez consulter les détails d'erreur d'analyse spécifiques suivants et modifier votre fichier source de manière appropriée.

Message d'erreur de l'analyseur: Impossible d'avoir plus d'une liaison sur la propriété 'Texte' sur 'System.Web.UI.WebControls.Label'. Assurez-vous que cette propriété n'est pas liée via une expression implicite, par exemple, en utilisant meta: resourcekey.

Erreur Source:

Ce qui précède est juste un exemple de ce que je suis confronté dans mon projet.

S'il vous plaît Aidez-moi comment puis-je faire la localisation et la liaison à la fois en même temps.

Répondre

1

Quelle solution j'ai trouvée est de faire les données entre les étiquettes.

comme

<asp:Label ID="Label1" runat="server" meta:resourcekey="Label1Resource1"><%# Eval("name") %></asp:Label> 

Mais cela conduit aussi à un autre problème. Et si je veux accéder à la valeur de cette étiquette dans le code derrière.

0

Vous ne pouvez utiliser qu'une seule liaison à la fois sur les événements de page. Si vous souhaitez utiliser les deux liaisons, il doit en outre dans des événements différents.

+0

différents moyens. Pouvez-vous élobenter. – Bindas

+0

À la fois, nous ne pouvons pas lier un contrôle particulier avec des valeurs. Vous pouvez donc lier avec différents événements tels que Chargement de page, Clic bouton, Page PreRender, etc. événements –

0

Évitez de placer l'attribut Texte dans le balisage, car il est déjà lié au texte localisé dans le fichier de ressources, et appelez simplement Label1.Text = "hello world".

+0

Que faire si l'étiquette est placée dans le modèle d'objet GridView. Je ne veux pas cette lourde méthode FindControl dans RowDataBound. – Bindas

Questions connexes