2008-11-14 125 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」。這應該阻止它編碼你的標記。