2008-11-14 100 views
0

我正在写一个小页面来显示我们公司的员工。我写了一个查询来从我们的数据库中提取信息。然后我将它绑定到一个GridView来完成肮脏的工作。这是查询。在ASP.NET中渲染<而不是<

"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 

回答

0

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

1

尝试在GridView的列上设置HtmlEncode =“False”。这应该阻止它编码你的标记。

相关问题