0

我正在写一个小页面来展示我们公司的员工。我写了一个查询来从我们的数据库中提取信息。然后我将它绑定到 GridView 以完成脏活。这是查询。

"SELECT tblEmpID.empid AS [Empl ID], tblEmpID.posno AS [Pos #], [name] & ""<br />""  &   [jcn] & ""("" & [jcc] & "")"" AS [Name/Job], [orgno] & "" - "" & [depname] AS Department, tblEmpID.[status] AS Status " & _
        "FROM tblEmpID " & _
        "ORDER BY [orgno] & "" - "" & [depname], tblEmpID.name "

正如你所看到的,我试图
在 SQL 中包含一个,所以当它呈现时它看起来像:

Name
Job Description

但是当它渲染它呈现为

&lt; and &gt;

有效地在记录中显示 <br /> 而不是像我想要的那样格式化它。

那么如何让它像我想要的那样渲染呢?我已经尝试用 \ 转义 < 但这没有用。


编辑:谢谢 gfrizzle。你的回答让我走上了正确的道路。另外,感谢 NYSystemsAnalyst。您的回答帮助我想到了将来做事的不同方式。最终,我找到了不同的解决方案。我将此代码放在 GridView1_RowDataBound 事件中,它可以满足我的需要。

If e.Row.RowType = DataControlRowType.DataRow Then
        Dim cells As TableCellCollection = e.Row.Cells

        For Each cell As TableCell In cells
            cell.Text = Server.HtmlDecode(cell.Text)
        Next
    End If
4

2 回答 2

1

尝试在 GridView 的列上设置 HtmlEncode="False"。这应该会阻止它对您的标记进行编码。

于 2008-11-14T19:26:18.690 回答
0

如果您这样做是为了只读目的,您可能需要考虑使用中继器控件。然后,您可以将它们作为单独的字段返回,从而从 SQL 结果集中消除 HTML。然后,您可以使用控件中的 ItemTemplate 来指定 HTML 以及您希望结果的确切显示方式。您可以将它们放在一个表格中,并使用 BR 标签。这看起来类似于网格,但让您可以更好地控制 HTML / .aspx 端的布局。

于 2008-11-14T19:25:29.130 回答