質問編集履歴

3

質問者様からの指摘を受け、詳細に記載

2020/01/31 07:37

投稿

toyotaku
toyotaku

スコア103

test CHANGED
File without changes
test CHANGED
@@ -14,11 +14,63 @@
14
14
 
15
15
  そもそも可能なのでしょうか?
16
16
 
17
+ ListViewでデータを一覧表示しており、
18
+
19
+ ListViewへバインドされたデータのレコードの内容に応じて対応する
20
+
21
+ リソースキーを変更しようとしています。
22
+
23
+ 実際にはリソースファイルから取得したいプロパティが大量にあり、
24
+
25
+ GetLocalResourceObjectで1つ1つプロパティを列挙するのが面倒なことから、
26
+
27
+ コードビハインドでresourceKeyを指定することができないだろうか、と考えました。
28
+
29
+
30
+
31
+ 例えば、ローカルリソース内に以下のように設定があるとします。
32
+
33
+ |名前|値|
34
+
35
+ |:--|:--|
36
+
37
+ |key1.Text|key1Text|
38
+
39
+ |key1.CssClass|cssClassName1|
40
+
41
+ |key2.Text|key2Text|
42
+
43
+ |key2.CssClass|cssClassName2|
44
+
45
+
46
+
47
+ aspxで以下のようにresourcekeyにkey1を指定すれば、
48
+
49
+ Textプロパティは"key1Text"、cssClassプロパティは"cssClassName1"になります。
50
+
17
51
  ```aspx
18
52
 
19
- <asp:Label id="hoge" meta:resourcekey="rk" runat="server" />
53
+ <asp:Label id="hoge" meta:resourcekey="key1" runat="server" />
20
54
 
21
55
  ```
56
+
57
+
58
+
59
+ 以下のようにresourcekeyにkey2を指定すれば、
60
+
61
+ Textプロパティは"key2Text"、cssClassプロパティは"cssClassName2"になります。
62
+
63
+ ```aspx
64
+
65
+ <asp:Label id="hoge" meta:resourcekey="key2" runat="server" />
66
+
67
+ ```
68
+
69
+
70
+
71
+ ラベルオブジェクトのmeta:resourcekeyに指定する値(この例では"key1" or "key2")を
72
+
73
+ aspxではなくコードビハインド側で設定できないか、というのが質問の内容です。
22
74
 
23
75
 
24
76
 
@@ -34,7 +86,9 @@
34
86
 
35
87
  ```C#
36
88
 
37
- hoge.Text = GetLocalResourceObject("rk.Text").ToString();
89
+ hoge.Text = GetLocalResourceObject("key1.Text").ToString();
90
+
91
+ hoge.CssClass= GetLocalResourceObject("key1.CssClass").ToString();
38
92
 
39
93
  ```
40
94
 
@@ -46,6 +100,6 @@
46
100
 
47
101
  ```C#
48
102
 
49
- hoge.resourceKey = "rk";
103
+ hoge.resourceKey = "key1";
50
104
 
51
105
  ```

2

目的と開発環境を追記しました。

2020/01/31 07:37

投稿

toyotaku
toyotaku

スコア103

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,12 @@
1
+ ASP.netで、グローバル対応のWebサイトを開発しています。
2
+
3
+ 開発環境はVisual Studio 2013、
4
+
5
+ .net Framework 4.5.1です。
6
+
7
+
8
+
1
- ASPで、meta:resourceKeyを指定すると、ローカルリソースファイルから
9
+ meta:resourceKeyを指定すると、ローカルリソースファイルから
2
10
 
3
11
  対応するプロパティをコントロールに対しセットすることができますが、
4
12
 

1

GetLocalResourceObjectに.ToString()を追加しました。

2020/01/31 01:36

投稿

toyotaku
toyotaku

スコア103

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  ```C#
28
28
 
29
- hoge.Text = GetLocalResourceObject("rk.Text");
29
+ hoge.Text = GetLocalResourceObject("rk.Text").ToString();
30
30
 
31
31
  ```
32
32