4

我想'<%$ Resources:resFile, someKey %>'在运行时动态地将字符串(键)插入到语句中。

现在我有这个:

 <asp:Label runat="server" id="lbl" Text='<%$ Resources:resFile, someKey %>'/>

这对我来说没用,因为键“someKey”是静态的,并且总是会收敛到相同的 x 翻译。

我试过做这样的事情:

 <asp:Label runat="server" id="lbl" Text='<%$ Resources:resFile, '<%#Eval("someProperty")%>' %>'/>

但这并不完全编译。我不确定你是否可以有嵌套<%%>语句,所以这就是我在这里问的原因。我也尝试过各种各样的事情,GetGlobalResourceObject()但这也不是我想要的。

问题是我将一个列表绑定到转发器,并且数据源中的一项将包含与资源文件中的键匹配的键。

如果有人知道如何实现这一点,无论是使用嵌套<%%>语句还是其他任何方式,我都很乐意尝试一下。

4

2 回答 2

4

您可以在 ItemDataBound 事件的代码隐藏中执行此操作。

Label lv = (Label)e.Item.FindControl("lbl");


ResourceManager resMngr = new ResourceManager(typeof(SupertextCommon.Default));
lv.Text = resMngr.GetObject(someProperty, culture);
于 2013-02-17T16:54:56.910 回答
2

这在使用其数据源属性的 GridView 中对我有用:

<%# GetGlobalResourceObject("Resource", Eval("SomeProperty").ToString()) %>

您还可以使用串联来构建密钥,例如:

<%# GetGlobalResourceObject("Resource", "SomePrefix" & Eval("SomeProperty").ToString()) %>
于 2013-11-08T14:19:05.840 回答