2009-08-06 67 views
0

我正在做一些标签。我想一个资源键(S,秒)添加到我的组合框一个与项目[3秒,5秒,10秒,30秒......],并用它喜欢:如何以这种方式使用ASP.NET资源?

Text="3<%$ Resources: myResource, s%>" to get comboBoxItem 3sec, 
Text="5<%$ Resources: myResource, s%>" to get comboBoxItem 5sec ... 

但我发现,服务器会将其视为纯文本。

我是否需要在单独的资源密钥对中定义每个项目?

回答

0

你可以做这样的(用的DataBind()调用的地方):

Text='<%# "3" + Resources.myResource.s %>' 

编辑:您也可以从代码做到这一点后面。事情是这样的:

int[] times = new int[]{ 3, 5, 10, 30 }; 
foreach (int time in times) 
{ 
    string text = time.ToString() + Resources.myResource.s; 
    cbo.Items.Add(new ListItem(text, time.ToString())); 
} 

编辑2:按照穆罕默德的观察的第一个例子不适合这项工作。我用它来进行其他控制,而且我没有看到目前的情况,这是不正确的。鉴于这一点,我会填补后面的代码控制。

+1

我已经检查了,这是给error..Text ='<%# “3” +资源.myResource.s%>' – 2009-08-06 06:39:40

0

您可以尝试创建自己的custom expression builder。如果你想实现你在问题中提出的问题,他们真的很强大。

或者,您可以随时使用服务器端代码。

2

考虑定义如下资源文件项值:

{0}sec 

然后

String.Format(Resources.myResource.s, "3") 
+0

你打算如何在aspx/ascx页面中写入? – Kirtan 2009-08-06 07:07:08

+0

也许就像:<%#String.Format(“3 {0}”,Resources.myResource.s)%>'。我不知道本的方法是否可行,但如果这样做,将是一个非常酷的方式。 +1 – Cerebrus 2009-08-06 07:31:13

+0

本的方法似乎不工作...... – Jay 2009-08-06 08:30:18