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

WebForm中如何在DataGridView的图片后添加删除按钮

在WebForm DataGridView的图片后方添加删除按钮的实现方法

原代码存在一处语法错误(img标签属性拼接有误),以下是修改后添加了删除按钮的完整代码:

private void LayThongTinHoSo(string sMaDDK)
{
    try
    {
        DataTable dt = new ReportClass().GetImageList_HOSO_THICONG(sMaDDK);

        foreach (DataRow row in dt.Rows)
        {
            string sFilePath = ResolveUrl("~/" + row["FILENAME"]);
            // 假设数据表中有唯一标识图片的字段(比如IMAGE_ID,需根据实际表结构替换)
            string imageId = row["IMAGE_ID"].ToString();
            
            // 拼接图片标签和删除按钮(用LinkButton触发服务器端删除事件)
            string imgHtml = $"<img src='{sFilePath}' width='400' border='0' />";
            string deleteBtnHtml = $"<asp:LinkButton runat='server' Text='删除' CommandName='DeleteImage' CommandArgument='{imageId}' OnClientClick=\"return confirm('确定要删除这张图片吗?');\" />";
            
            // 将图片和按钮合并到PATH列
            row["PATH"] = $"{imgHtml}&nbsp;&nbsp;{deleteBtnHtml}";
        }

        grdDanhSachHoSo.DataSource = dt;
        grdDanhSachHoSo.DataBind();
    }
    catch (Exception ex)
    {
        // 建议添加日志记录,方便后续排查异常
        // Logger.Error("加载图片列表失败", ex);
    }
}

关键补充说明:

  • 修正语法错误:移除了原img标签中多余的无效拼接字符,保证HTML结构合法
  • 删除逻辑处理:需要为grdDanhSachHoSo添加RowCommand事件,处理按钮的删除请求,示例代码如下:
protected void grdDanhSachHoSo_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "DeleteImage")
    {
        string imageId = e.CommandArgument.ToString();
        // 调用业务层的删除方法,比如:
        // new ReportClass().DeleteImageByID(imageId);
        // 重新加载图片列表
        LayThongTinHoSo("对应业务的sMaDDK值");
    }
}

注意事项:

  1. 请根据实际数据表结构,将IMAGE_ID替换为真实的图片唯一标识字段
  2. 确保grdDanhSachHoSo的AutoGenerateColumns设为true,或者已配置绑定PATH列的TemplateField
  3. 空catch块建议补充日志记录,避免异常无迹可寻

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:55:31