c# - 用 html 标签包围 Eval

标签 c# asp.net html concatenation

请帮忙!!我已经搜索了几个小时,但也许解决方案非常明显,我完全忽略了它:(

我有一个绑定(bind)到 sql 表的 ListView 。该表包含一堆仅包含“T”或 NULL 值的字段,但最后两个字段除外,它们包含用于用户评论的自由类型文本。

对于 T/NULL 值 - ListView 配置为不显示空单元格,在有“T”值的地方,它将显示自定义文本并为下一项创建换行符。此语法正是这样做的:

<asp:Label ID="LymeLabel" runat="server" Text='<%# Eval("Lyme","Lyme Disease<br />") %>' />

但是,我希望最后两个字段(自由类型文本)以段落样式显示,并在 Eval 语句周围加上段落标记。标签必须构成 Eval 的一部分,这样如果单元格为空,它们就不会呈现空白。我的想法是这样做,但它不起作用 - 空格以任何一种方式显示:

<asp:Label ID="OtherCommentLabel" runat="server" Text='<%# "<p>"+Eval("OtherComment")+"</p>" %>' />

我猜 ""+ ... +""不在乎中间有什么..但如何解决它?必须有一个非常简单的解决方案,即使问这个我也觉得很愚蠢。有什么建议吗?

最佳答案

根据描述,您根本不需要asp:Label。为什么不将 Eval() 包装在 P 标记中?

<p><%# Eval("Lyme","Lyme Disease") %></p>

即使标签有效,您也不会想要生成的标记(标签内的段落毫无意义)。

要在项目为空时处理显示/隐藏,您可以执行以下操作:

<ItemTemplate>
    <p runat="server" visible='<%#!string.IsNullOrEmpty(Eval("OtherComment"))%>'>
        <%# Eval("Lyme","Lyme Disease") %>
    </p>
</ItemTemplate>

关于c# - 用 html 标签包围 Eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12742313/

相关文章:

c# - 如何使用带有 C# 的 ASP.NET 在新的浏览器选项卡中打开任何文件?

c# - MembershipProvider 的密码验证器?

html - 页脚未随 Bootstrap 类扩展

html - CSS 将鼠标悬停在某物上并让完全不同的 div 更改其属性

c# - WinForm 多线程。是否使用 backgroundWorker?

c# - Moq 可以模拟 HubConnection 但 RhinoMocks 不能?

c# - ASP.NET 用户控件的编辑、插入、更新模式

html - 我页面顶部的白色条

c# - 创建屏幕键盘

asp.net - 无法将 IdentityServer4 添加到 ASP.NET Framework 4.7.2 API OWIN