如何在DevExpress GridControl的一列中显示外部图片?
答案:2 悬赏:70 手机版
解决时间 2021-03-14 23:19
- 提问者网友:饥饿走向夜
- 2021-03-14 15:29
如何在DevExpress GridControl的一列中显示外部图片?
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-03-14 16:36
如果数据源中只包含图片的链接, 要实现该功能,可通过非绑定列的方式来实现。具体实现方法如下: 1. 创建了一个非绑定列并设置其相应的属性,属性设置如下: FieldName设为 Image (该字段名必须是唯一的) UnboundType设为 UnboundColumnType.Object ColumnEdit设为RepositoryItemPictureEdit类的实例(该操作PictureEdit 为该列的内置编辑器) 2. 处理View的CustomUnboundColumnData事件,用于为非绑定列填充数据。在该事件中需加载图片,将其存放在一个hashtable中,然后再将其提供给对应的单元格。 关键代码: //获取文件路径 string GetFileName(string color) { if(color == null || color == string.Empty) return string.Empty; return color + ".jpg"; } //处理CustomUnboundColumnData事件,为非绑定列填充数据 private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e) { if(e.Column.FieldName == "Image" && e.IsGetData) { GridView view = sender as GridView; string colorName = (string)((DataRowView)e.Row)["Color"]; string fileName = GetFileName(colorName).ToLower(); if(!Images.ContainsKey(fileName)) { Image img = null; try { string filePath = DevExpress.Utils.FilesHelper.FindingFileName(Application.StartupPath, ImageDir + fileName, false); img = Image.FromFile(filePath); } catch { } Images.Add(fileName, img); } e.Value = Images[fileName]; } } 点击下载示例 本站文章除注明转载外,均为本站原创或翻译
全部回答
- 1楼网友:平生事
- 2021-03-14 17:25
肯定要存到数据库里面了,这个应该是winform的 我不清楚,但是web的是使用loadclientlayout这个方法的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯