在GridView单元格中呈现已解码的HTML,可以通过以下步骤实现:
示例代码如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// 找到需要呈现HTML的单元格
TableCell cell = e.Row.Cells[0];
// 将HTML实体转换为正常的字符串
string html = (string)DataBinder.Eval(e.Row.DataItem, "HTMLColumn");
string decodedHtml = HttpUtility.HtmlDecode(html);
// 使用LiteralControl控件将已解码的HTML字符串添加到单元格中
LiteralControl literal = new LiteralControl(decodedHtml);
cell.Controls.Add(literal);
}
}
在上面的示例代码中,我们假设HTML内容存储在数据源的“HTMLColumn”列中,并且已经在页面中定义了一个名为“GridView1”的GridView控件。在RowDataBound事件中,我们首先找到需要呈现HTML的单元格,然后使用HttpUtility.HtmlDecode方法将HTML实体转换为正常的字符串,最后使用LiteralControl控件将已解码的HTML字符串添加到单元格中。
注意:在使用LiteralControl控件时,需要注意防止跨站脚本攻击(XSS),因为已解码的HTML可能包含恶意代码。在添加LiteralControl控件之前,可以使用AntiXss.GetSafeHtmlFragment方法对HTML进行清理和验证。
领取专属 10元无门槛券
手把手带您无忧上云