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} {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值"); } }
注意事项:
- 请根据实际数据表结构,将
IMAGE_ID替换为真实的图片唯一标识字段 - 确保
grdDanhSachHoSo的AutoGenerateColumns设为true,或者已配置绑定PATH列的TemplateField - 空catch块建议补充日志记录,避免异常无迹可寻
内容的提问来源于stack exchange,提问作者user9569469
相关产品推荐
相关产品推荐

