我想在运行时动态地将一个字符串(键)插入到'<%$ 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()
的各种功能,但这也不能满足我的要求。
问题是,我正在将一个列表绑定到一个中继器,数据源中的一个项将包含与资源文件中的键匹配的键。
如果有人知道如何实现这一点,无论是使用嵌套的<%%>
语句还是其他任何方式,我都很乐意尝试。
您可以在ItemDataBound事件的代码隐藏中执行此操作。
Label lv = (Label)e.Item.FindControl("lbl");
ResourceManager resMngr = new ResourceManager(typeof(SupertextCommon.Default));
lv.Text = resMngr.GetObject(someProperty, culture);
这在GridView中使用了它的数据源属性
<%# GetGlobalResourceObject("Resource", Eval("SomeProperty").ToString()) %>
您也可以使用串联来构建密钥,例如:
<%# GetGlobalResourceObject("Resource", "SomePrefix" & Eval("SomeProperty").ToString()) %>