如何在DevExpress GridControl的一列中显示外部图片?
作者:huhm 来源:本站 浏览:Loading...次 发布时间:2012-03-01 评论:1条
如果数据源中只包含图片的链接,如何在DevExpress GridControl的一列中显示外部图片?
要实现该功能,可通过非绑定列的方式来实现。具体实现方法如下:
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];
}
}
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [http://www.devexpresscn.com/]
本文地址:http://www.devexpresscn.com/DevExpress-Resources/Demo-13.html
关键字: WinForms GridControl 数据
评论列表
请谈谈你的看法 请使用IE或者Firefox浏览器,暂不支持Chrome!
慧都控件网为DevExpress界面控件的中国地区唯一正式授权经销商,正版控件销售公司,授权代理商,经销商及合作伙伴。
电话:400-700-1020
023-66090381
邮箱:sales@evget.com
相关资源
- GridControl大数据加载时如何优化性能
- 如何使Grid没有聚焦行?
- XtraGrid如何使单元格只读?
- 怎么保存并读入GridControl里的过滤条件?
- 如何将数据库里的数据与XtraTreeList进行绑定
- XtraTreeList怎样隐藏过滤编辑面板
- ChartControl大数据加载时有哪些性能优化方法
- XtraRibbon可以修改界面显示的DX默认图标么?
- 在XtraGrid自定义表尾时为何运行时正常但预览时消失
- ASPxGridView如何使用内置的HyperLink编辑器创建一个超链接列?
- 如何让TreeList的每个结点高亮显示?
- ASP.NET ASPxGridView使用方法大全
- XtraGrid巧用剪切与粘贴修改数据行显示顺序
- 如何设置XtraGrid数据源