如何在 aspx 页面中将 2 个资源字符串连接在一起
我有一个本地化的 ASP.net 应用程序 (.net 2.0)。我希望将从资源文件中检索到的 2 个字符串连接到一个元素中,如下所示。
Text="<%$ Resources:Resource, lw_name %>" + <%$ Resources:Resource, lw_required %>"
我尝试使用 Eval 但没有成功。是我正在尝试执行“正确”方法,或者我可以在资源文件中存储带有占位符的字符串并“即时”插入它们。
我试图在 aspx 文件中而不是在代码隐藏中执行此操作。
I have a localised ASP.net application (.net 2.0). I wish to concatenate 2 strings retrieved from the resource file together into one element, something like this.
Text="<%$ Resources:Resource, lw_name %>" + <%$ Resources:Resource, lw_required %>"
I have tried using Eval without success. Is what I am trying to do the "correct" approach or can I store strings with placeholders in the resource file and interpolate them "on the fly".
I am trying to do this in the aspx file rather than in code-behind.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
使用
<%$ Something: Something Else %>
的 ASP.NET 标记属性值采用特殊语法,称为 ASP.NET 表达式。使用它们作为属性值几乎是全有或全无;无法将任何代码添加到 ASPX 文件中来操纵这些表达式的计算结果。您必须在隐藏代码中执行此操作。ASP.NET tag attribute values that use
<%$ Something: Something Else %>
are of a special syntax called ASP.NET Expressions. Using them as attribute values are pretty much all-or-nothing; there's no way to add any code into the ASPX file to manipulate what those expressions evaluate to. You'll have to do this in the code-behind.我寻找解决方案很久了
这段代码对我有用:
I search for the solution so long
This code works for me:
< asp:HyperLink ToolTip='<%# "某些文本:" + Eval("id").ToString() %>' ……/>
你的意思是这样的吗... ToolTip='...' ->将返回值转换为 STRING... ( xxxx.ToString() )
像这样显示:Some Text: 1234 -->在工具提示上
,所以你应该在你的情况下做这样的事情:
Text="<%$ (资源:资源, lw_name).ToString() %>" + <%$ (Resources:Resource, lw_required).ToString() %>"
我不知道它是否会起作用,但尝试转换为 ToString()。
< asp:HyperLink ToolTip='<%# "Some Text :" + Eval("id").ToString() %>' ....../>
Do you mean something like this.... ToolTip='...' -> Convert your return values to STRING... ( xxxx.ToString() )
Like this it displays: Some Text: 1234 --> on Tooltip
so you should do something like this in your case:
Text="<%$ (Resources:Resource, lw_name).ToString() %>" + <%$ (Resources:Resource, lw_required).ToString() %>"
I don't know if it's going to work but try to conver to ToString().
我知道你说过你尝试过 eval 但像这样的东西怎么样:
Text='<%# string.Format("{0}{1}",Eval("lw_name"),Eval("lw_required")) %> ;'
I know you said you tried eval but what about something like this:
Text='<%# string.Format("{0}{1}",Eval("lw_name"),Eval("lw_required")) %>'
我遇到了同样的问题,我通过使用此选项解决了它:
对于本地资源,使用 GetLocalResourceObject 方法而不是 GetGlobalResourceObject
I was having the same issue, and I solved it by using this option instead:
For local Resources, use the GetLocalResourceObject method instead of GetGlobalResourceObject
尝试
“@(Resources.ResourceString + Resources.ResourceString)”
Try
"@(Resources.ResourceString + Resources.ResourceString)"
使用此方法在 ASPX 中附加 2 个字符串。
Use this method to append 2 strings in ASPX.
这可能会有所帮助,
请注意,串联不是在 Text 属性上,而是在 label 元素之间
完整的帖子可以找到 这里
This Might Be of Help
Note the concatenation is not on the Text attribute but between the label element
Full post can be found here