在用户控件内有条件地显示数据
在 ASP.NET 用户控件中,我有这样一行:
<div>Web: <a href="<%# Eval("Web") %>"><%# Eval("Web") %></a></div>
我想更改它,以便仅在 Web
有值时才呈现此 HTML。
我尝试在服务器端脚本中包装 String.IsNullOrEmpty(Eval("Web") as string)
但 Eval 只能在“绑定”标签内使用。
最好的方法是什么?
Within an ASP.NET user control I have the line:
<div>Web: <a href="<%# Eval("Web") %>"><%# Eval("Web") %></a></div>
I'd like to change it so this HTML is only rendered if Web
has a value.
I've tried wrapping String.IsNullOrEmpty(Eval("Web") as string)
in server side script but Eval can only be used inside a "binding" tag.
What is the best way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一种解决方法,但您可以在 ItemTemplate 标记中设置一个隐藏字段:
然后您可以将 div 的“runat”属性设置为“server”并为该 div 提供一个 ID。
在代码隐藏中,检查
HiddenField1
是否为空。如果不为空,则设置 'divWeb'visible = true
。此方法的缺点是用户可以手动更改 HiddenField1 值。但是,如果这不是问题(安全方面),那么您可以尝试此方法。
更新
下面的代码片段来自 此网站:
此中还有其他选项线程
It's a bit of a workaround, but you could have a hidden field in your ItemTemplate tag:
You could then set the 'runat' attribute of the div to 'server' and give the div an ID.
In your code-behind, you check whether or not
HiddenField1
is empty. If it's not empty, then set 'divWeb'visible = true
.The downside to this method is that the user could manually change the HiddenField1 value. However, if that's not a problem (security wise), then you could try this method.
Update
The code snippet below is from the inline section of this site:
There are also alternative options in this thread
嗯,MVC 更多的是针对页面中的这种类型的逻辑...通常使用 Web 表单,一切都是通过代码隐藏完成的...此外,您是否会考虑执行以下操作:
尚未专门尝试过这种方法,但我知道第三级(?:)在这种情况下起作用,因此它可以起作用似乎是合乎逻辑的......
Well, MVC was meant more for that type of logic in the page... typically with web forms everything is done with code-behind... Additionally, would you consider doing something like:
Haven't tried this approach specifically, but I know tertiary (?:) works in this context, and so it seems logical that it could work....