2011-01-11 12 views
1

私はASP.netのローカリゼーションにいくつか問題があります。 私はリソースを生成し、変数によってテキストプロパティをバインドしました。 ソースファイルにあります。Asp.net Explicit Localization問題

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

protected string name; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     name = "Hello World"; 
    } 
の背後にあるコード

上記物事は単純ですが、私はプロジェクトを実行するとき。 私は

Parser Error 

説明を得た:エラーがこの要求を処理するために必要なリソースの解析中に発生しました。以下の特定の解析エラーの詳細を確認し、ソースファイルを適切に変更してください。

パーサーエラーメッセージ: 'System.Web.UI.WebControls.Label'の 'Text'プロパティで複数のバインディングを持つことはできません。このプロパティーが暗黙の式によってバインドされていないことを確認します(たとえば、meta:resourcekeyを使用)。

ソースエラー:

上記の私は自分のプロジェクトに直面していますどのような単なる一例です。

ローカライズとバインドを同時に行う方法を教えてください。

答えて

1

私が見つけた解決策は、タグ間にデータを作ることです。

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

よう

しかし、これはまた別の問題につながります。

コード内のそのラベルの値にアクセスしたい場合はどうすればいいですか?

0

ページイベントでは、一度に1つのバインディングしか使用できません。 両方のバインディングを使用する場合は、異なるイベントに加えてバインディングする必要があります。

+0

異なっていることを意味します。あなたは熱狂することができますか? – Bindas

+0

特定のコントロールを値でバインドすることはできません。 Page Load、Button Click、Page PreRenderなどのイベントをバインドすることができます。 –

0

リソースファイル内のローカライズされたテキストに既にバインドされているので、マークアップにText属性を配置しないでください。Label1.Text = "hello world"を呼び出してください。

+0

何がラベルがGridViewのItemtemplate内に配置されているかを示します。私は、RowDataBoundでその重いFindControlメソッドを必要としません。 – Bindas