在GridView列表中使用图片显示记录是否包含附件

在我的前面很多文章中,都介绍过通用附件模块的管理,本篇随笔主要介绍在一些应用模块中的列表展示中,包含附件的记录,在GridView列表界面中使用图标来快速显示是否有附件的情况。

1、通用附件模块的应用界面效果

例如在我的《通用人员信息管理模块》中(可以参考随笔《Winform开发框架之通用人员信息管理》、《Winform开发框架之通用人员信息管理实现代码介绍》,很多都使用了《通用附件管理模块》(可以参考《Winform开发框架之附件管理应用》来处理附件信息。如下界面所示。

但有时我们在列表中展示主要的数据的时候,我们希望知道哪一条记录是否包含附件,以便我们快速查看相关的附件的时候,如下所示的展示效果,我们需要怎么做呢?

2、具体实现代码

首先我们在绑定数据操作中增加一个字段列,用来在GridView列表中进行展示是否有附件的图标的,我们定义为 HasAttachment,然后判断附件列表中是否存在附件,并赋值给存在附件的列,具体逻辑代码如下所示。

        /// <summary>
        /// 绑定列表数据
        /// </summary>
        public void BindData()
        {
            //entity
            this.winGridViewPager1.DisplayColumns = "Seq,Category,Title,HasAttachment";
            #region 添加别名解析

            this.winGridViewPager1.AddColumnAlias("Seq", "序号");
            this.winGridViewPager1.AddColumnAlias("Category", "科研情况类别");
            this.winGridViewPager1.AddColumnAlias("Title", "标题信息");
            this.winGridViewPager1.AddColumnAlias("AttachGUID", "附件GUID");
            this.winGridViewPager1.AddColumnAlias("HasAttachment", "附件信息");

            #endregion

            string where = GetConditionSql();
            DataTable dt = WHC.Framework.ControlUtil.BLLFactory<StaffResearch>.Instance.FindToDataTable(where);
            if (dt != null)
            {
                dt.Columns.Add("HasAttachment", typeof(Image));
                foreach (DataRow dr in dt.Rows)
                {
                    string attachGUID = dr["AttachGUID"].ToString();
                    Dictionary<string, string> list = WHC.Framework.ControlUtil.BLLFactory<WHC.Attachment.BLL.FileUpload>.Instance.GetFileNames(attachGUID);
                    if (list.Count > 0)
                    {
                        dr["HasAttachment"] = WHC.StaffData.Properties.Resources.attach2;
                    }
                }
            }

            this.winGridViewPager1.DataSource = dt;
            this.winGridViewPager1.PrintTitle = "人员科研情况信息报表";
        }

然后我们就是需要在GridView显示的时候,进行一些处理工作,如定义这个HasAttachment列的显示类型,并限定它的宽度等操作,以便进行更好的展示,如下代码所示。

            this.winGridViewPager1.gridView1.DataSourceChanged += new EventHandler(gridView1_DataSourceChanged);
        /// <summary>
        /// 绑定数据后,分配各列的宽度
        /// </summary>
        private void gridView1_DataSourceChanged(object sender, EventArgs e)
        {
            if (this.winGridViewPager1.gridView1.Columns.Count > 0 && this.winGridViewPager1.gridView1.RowCount > 0)
            {
                this.winGridViewPager1.gridView1.Columns["Seq"].Width = 50;
                this.winGridViewPager1.gridView1.Columns["Category"].Width = 50;
                this.winGridViewPager1.gridView1.Columns["Title"].Width = 200;

                RepositoryItemPictureEdit pic = new RepositoryItemPictureEdit();
                pic.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom;
                pic.NullText = " ";
                pic.BestFitWidth = 80;
                this.winGridViewPager1.gridView1.Columns["HasAttachment"].ColumnEdit = pic;
                this.winGridViewPager1.gridView1.Columns["HasAttachment"].MaxWidth = 100;
                this.winGridViewPager1.gridView1.Columns["HasAttachment"].MinWidth = 80;
            }
        }

完成上面的几步操作,我们就能在GridView中正常显示一个图标了,通过这个案例,我们拓展开来,可以在GridView中展示更好的效果,例如可以把一些字段的Image图形数据读取出来并展示出来等操作。

本文转自博客园伍华聪的博客,原文链接:在GridView列表中使用图片显示记录是否包含附件,如需转载请自行联系原博主。

时间: 2024-09-05 10:53:13

在GridView列表中使用图片显示记录是否包含附件的相关文章

android-如何在发送列表中添加应用显示

问题描述 如何在发送列表中添加应用显示 应用是下载图片到本机服务器上,怎么样能在发送列表中显示应用列表? Intent share = new Intent(Intent.ACTION_SEND);share.setType(""image/jpeg"");share.putExtra(Intent.EXTRA_STREAM Uri.parse(FilePath));startActivity(Intent.createChooser(shareShare Imag

qt图片表示问题-qt的toolbar中的图片显示不出来?好奇怪

问题描述 qt的toolbar中的图片显示不出来?好奇怪 刚刚开始接触qt,想做一个工具栏,其中想显示一个图片,代码如下. 可不知道为什么我的图片就是不显示,太奇怪了,请各位狠人帮我看看吧 QToolBar *pToolBar = new QToolBar; QToolButton *pNewDocBtn = new QToolButton; pNewDocBtn->setIcon(QIcon(":/prefix/copy.png")); pNewDocBtn->setTe

Android开发中,界面中的图片显示不出来

问题描述 自己放着下了一个推箱子游戏,但是出现了一个问题.问题主要是里面的游戏说明界面(HelpView)的图片显示不出来,直接是黑屏.操作过程是程序运行起来后可以看到菜单界面,然后单击"游戏说明",进入的屏幕是黑的,但是背景音乐还是响着,单击某个区域,仍会返回到菜单界面,不知道是哪里出了问题,请帮忙看一下.我急需---- 解决方案 看了一下,类HelpView中/** * 创建HelpView时会被调用,启动游戏说明界面的刷帧线程 * * @param holder 界面控制 */p

&amp;amp;lt;img &amp;amp;gt;中的图片显示问题

问题描述 我在服务器的d:mmmapplicationsimage1.jpg文件我现在要在d:mmmapplicationsregadd.jsp文件里显示这个图片,可以怎么写???我目前错误的处理方法如下:<imgsrc="绝对路径">这种方式不能显示图片,我右击这张没显示的图片它的地址为(file:///D:/mmm/applications/image/1.jpg)<imgsrc="applications\image\1.jpg">也不

phonegram中的图片显示不出来怎么办

最近由于Instagram的DNS服务遭到封禁,Padgram和Phonegram都不同程度的出现了图片无法显示的情况. 1.在手机上选择设置,再选择无线局域网 2.修改当前网络的DNS服务地址为'8.8.8.8'即可.

Ext中ComboBox图片显示有点问题求解决

问题描述 图片在附近里,谢谢Ext.onReady(function(){ var data = [ ['value1','text1'], ['value2','text2'], ['value11','text11'], ['value12','text12'] ]; var store = new Ext.data.SimpleStore({ fields: ['value', 'text'], data: data }); var combo = new Ext.form.ComboBo

急!GridView列表中删除一个数据,同时更新另一个表中的字段的问题!

问题描述 求救各位大虾!!!前台:<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataKeyNames="Submenu_id"DataSourceID="AccessDataSource1"OnRowCommand="GridView1_RowCommand"Width="100

Android实现从缓存中读取图片与异步加载功能类_Android

本文实例讲述了Android实现从缓存中读取图片与异步加载功能类.分享给大家供大家参考,具体如下: 在新浪微博的微博列表中的图片,为了加速其显示也为了加快程序的响应,可以参考该图片异步加载类实现. public class AsyncImageLoader { //SoftReference是软引用,是为了更好的为了系统回收变量 private HashMap<String, SoftReference<Drawable>> imageCache; public AsyncImag

RDLC系列之三 图片显示

一.头像效果 二.步骤 1.后台代码添加图片路径参数 2.在报表中添加图片路径参数picPath,添加图片控件,并设置选择源为外部.指定参数picPath   参考文章: http://www.cnblogs.com/jobin/articles/1152060.html 向 ReportViewer 报表中添加图像 图像是一种包含对存储在报表服务器上.嵌入在报表中或存储在数据库中的图像的引用的报表项.图像可以是报表中显示一次的徽标或图片,也可以是数据行中重复显示的图片.还可以将图像用作某些报表