ASP.netで、グローバル対応のWebサイトを開発しています。
開発環境はVisual Studio 2013、
.net Framework 4.5.1です。
meta:resourceKeyを指定すると、ローカルリソースファイルから
対応するプロパティをコントロールに対しセットすることができますが、
これをコードビハインドから指定するにはどのようにするのでしょうか?
そもそも可能なのでしょうか?
ListViewでデータを一覧表示しており、
ListViewへバインドされたデータのレコードの内容に応じて対応する
リソースキーを変更しようとしています。
実際にはリソースファイルから取得したいプロパティが大量にあり、
GetLocalResourceObjectで1つ1つプロパティを列挙するのが面倒なことから、
コードビハインドでresourceKeyを指定することができないだろうか、と考えました。
例えば、ローカルリソース内に以下のように設定があるとします。
名前 | 値 |
---|---|
key1.Text | key1Text |
key1.CssClass | cssClassName1 |
key2.Text | key2Text |
key2.CssClass | cssClassName2 |
aspxで以下のようにresourcekeyにkey1を指定すれば、
Textプロパティは"key1Text"、cssClassプロパティは"cssClassName1"になります。
aspx
1<asp:Label id="hoge" meta:resourcekey="key1" runat="server" />
以下のようにresourcekeyにkey2を指定すれば、
Textプロパティは"key2Text"、cssClassプロパティは"cssClassName2"になります。
aspx
1<asp:Label id="hoge" meta:resourcekey="key2" runat="server" />
ラベルオブジェクトのmeta:resourcekeyに指定する値(この例では"key1" or "key2")を
aspxではなくコードビハインド側で設定できないか、というのが質問の内容です。
グローバルリソースであればResource.クラス名.リソースキー名、
ローカルリソースであればGetLocalResourceObject(string)で
取得できることは知っています。
例えば、以下のようにすれば、リソースから取得した値をhogeのTextプロパティに
セットすることができます。
C#
1hoge.Text = GetLocalResourceObject("key1.Text").ToString(); 2hoge.CssClass= GetLocalResourceObject("key1.CssClass").ToString();
そうではなく、リソースキー自体を書き換えるようなことができないでしょうか。
イメージ的には以下のように。当然うごきません。
C#
1hoge.resourceKey = "key1";
回答1件
あなたの回答
tips
プレビュー