GridControl 列中显示图片
来源:互联网 发布:javascript教程 正则 编辑:程序博客网 时间:2024/06/05 01:51
GridControl一列的ColumnEdit属性中选择PictureEdit,一个RepositoryItemPictureEdit添加完成。列的FieldName设置为Image列名,如img。
GridControl绑定的数据,不管是DataTable、List或者其他源,添加一个列,列名为img。 以DataTable为例:
Image xx=Image.FromFile(
"xxx"
),yy=Image.FromFile(
"yyy"
);
dt.Columns.Add(
"img"
);
foreach
(DataRow dr
in
dt.Rows)
{
if
(dr[
"imgflag"
].ToString()==
"1"
)
dr[
"img"
]=xx;
else
dr[
"img"
]=yy;
}
第 2 条附言 · 6 月前
上一篇介绍的是直接使用Image类型,也可以使用byte[]。
如果数据库中直接存的二进制,没什么好说的,直接DataSource=dt绑定完成即可。
下面是一个image路径的例子。
private void showData(List list) { DataTable dt = new DataTable("OneEmployee"); dt.Columns.Add("Caption",System.Type.GetType("System.String")); dt.Columns.Add("Department",System.Type.GetType("System.String")); dt.Columns.Add("PhotoName",System.Type.GetType("System.Byte[]")); for (int i = 0; i < list.Count; i++) { DataRow dr = dt.NewRow(); dr["Caption"] = list[i].Name; dr["Department"] =list[i].Department; string imagePath = @"D:/C#/photos/" + list[i].PhotoPath; dr["PhotoName"] = getImageByte(imagePath); dt.Rows.Add(dr); } gridControl1.DataSource = dt; } //返回图片的字节流byte[] private byte[] getImageByte(string imagePath) { FileStream files = new FileStream(imagePath,FileMode.Open); byte[] imgByte = new byte [files.Length ]; files.Read(imgByte,0, imgByte.Length); files.Close(); return imgByte; }
第 3 条附言 · 6 月前
还有一种方法,使用CustomUnboundColumnData事件
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]; }}
阅读全文
0 0
- GridControl 列中显示图片
- Devexpress gridcontrol列中根据值显示图片
- gridControl中图片的显示
- GridControl中列的显示格式设置
- GridControl 实现图片列
- 控制gridControl中cardview中图片的固定大小显示
- 在DevExpress GridControl的一列中显示图片
- gridControl自定义列中数据
- 关于GridControl的列显示问题
- DevExpress GridControl 用路径加载图片,插入到Grid列中
- DevExpress GridControl 用路径加载图片,插入到Grid列中
- GridControl 中ComoboxEdit 列 模糊音查询
- GridControl中添加下拉列表列RepositoryItemComboBox
- DataGrid--在列中显示图片
- devexpress表格控件gridcontrol图片列,按钮列,时间列等特殊列的实现
- Dev GridControl控件绑定数据源,列不显示
- DevExpress GridControl 中显示时间格式
- DevExpress:GridControl中显示时间格式
- 实验一(jdbc连接数据库)
- 验证mysql的自动提交事务和手动提交事务(java版)
- javaweb_day7(JDBC)prepareStatement防止sql注入
- 函数指针
- python数据可视化利器--pyecharts
- GridControl 列中显示图片
- 五大常用算法之二:动态规划算法
- 多渠道打包,同一套代码,多包名APK
- 集合类
- 第一次互联网实习面试经历
- 简单加密---位运算
- 常用API
- 正则表达式详解
- 信息学奥赛一本通(C++版) 第三部分 数据结构 第二章 队列