标签<取而代之的是<在Asp.Net GridView中

时间:2016-03-16 11:34:39

标签: html asp.net asp.net-mvc vb.net gridview

我有一个从数据库中获取数据的gridView。其中一个字段包含超链接。

字段是名称和详细信息。

示例文字:"School Name <a href='http://site/page.aspx'>School URL</a>".

网格如下:

<asp:GridView CssClass="grid" ID="grdSchool" runat="server" AutoGenerateColumns="True" 
        OnPageIndexChanging="grdSchoolIndexChanging" AllowSorting="True" OnSorting="SortRecords" AllowPaging="True" ShowHeaderWhenEmpty="True">
</asp:GridView>

gridview获取其代码形式

dim dt as datatable= getGataFromDatabase()
grdSchool.DataSource = dt

当页面呈现时,< tag&lt;替换,因此它显示为文本而不是超链接。 有没有我可以逃避<标签,以便它显示为超链接。

1 个答案:

答案 0 :(得分:0)

不幸的是,不使用AutoGenerateColumns。您必须单独列出所有列,以获得执行此操作所需的控制量。 AutoGenerateColumns并不能真正控制数据的显示方式。它更像是一种显示简单数据的快捷方式。

您需要做的关键是确保GridView不对HTML进行数据编码。幸运的是,<asp:BoundField>具有HtmlEncode属性。只需将其设置为false。

<asp:GridView CssClass="grid" ID="grdSchool" runat="server"
    AutoGenerateColumns="False" 
    OnPageIndexChanging="grdSchoolIndexChanging" 
    AllowSorting="True" 
    OnSorting="SortRecords"
    AllowPaging="True"
    ShowHeaderWhenEmpty="True">
    <Columns>
        <asp:BoundField DataField="yourLinkColumn" HeaderText="yourLinkColumnHeader" HtmlEncode="False" />
        <asp:BoundField DataField="yourNonLinkColumn" HeaderText="yourNonLinkColumnHeader" />
    </Columns>
</asp:GridView>