You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataGridView中插入HTML图标替换锁定状态文本

解决方案

第一步:修改后台C#代码,替换文本为HTML图标

把原本赋值为"Yes"的代码替换成你提供的FontAwesome图标HTML字符串:

//checking if folder is locked
for(int i = 0; i<pathLock.Count; i++)
{
    if (pathLock[i] == folderPath)
    {
        // 替换为HTML图标代码
        myDataRow["Locked"] = "<span class='fa fa-lock'></span>";
        // 找到匹配项后跳出循环,提升效率
        break;
    }
}

可选优化:为未锁定的文件夹设置默认空白值,避免列内容为空时显示异常

// 先设置默认值
myDataRow["Locked"] = "";
//checking if folder is locked
for(int i = 0; i<pathLock.Count; i++)
{
    if (pathLock[i] == folderPath)
    {
        myDataRow["Locked"] = "<span class='fa fa-lock'></span>";
        break;
    }
}

第二步:允许GridView渲染HTML内容

默认情况下,GridView会自动转义HTML文本,导致页面显示原始代码而非图标,需要关闭对应列的HTML编码:

方式1:ASPX页面声明式配置

如果你的GridView是在ASPX页面中声明的,找到Locked对应的BoundField列,添加HtmlEncode="False"属性:

<asp:GridView ID="yourGridViewID" runat="server" AutoGenerateColumns="False">
    <Columns>
        <!-- 其他列配置 -->
        <asp:BoundField DataField="Locked" HeaderText="Locked" HtmlEncode="False" />
    </Columns>
</asp:GridView>

方式2:后台代码动态配置

如果是后台动态生成GridView列,创建列时设置HtmlEncode为false:

BoundField lockedColumn = new BoundField();
lockedColumn.DataField = "Locked";
lockedColumn.HeaderText = "Locked";
lockedColumn.HtmlEncode = false;
yourGridViewID.Columns.Add(lockedColumn);

额外注意

确保页面已引入FontAwesome的CSS文件,否则图标无法正常显示:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

若项目已本地引入FontAwesome资源,可跳过此步骤

内容的提问来源于stack exchange,提问作者Jaco Visser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 09:33:17