我有一个从数据库中获取数据的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
被<
替换,因此它显示为文本而不是超链接。
有没有我可以逃避<
标签,以便它显示为超链接。
答案 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>