在GridView列表中使用图片显示记录是否包含附件-阿里云开发者社区

开发者社区> walb呀> 正文

在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列表中使用图片显示记录是否包含附件,如需转载请自行联系原博主。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
1.3 万亿条数据查询,如何做到毫秒级响应?
作为中国最大的知识共享平台,我们目前拥有 2.2 亿注册用户,3000 万个问题,网站答案超过 1.3 亿。
3 0
Django框架介绍与安装
软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品, 框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系 通常情况下我们依据框架来实现更为复杂的业务程序开发 二个字,框架就是程序的骨架
6 0
我的无影云电脑初体验
最近看到阿里云开发者社区有无影云电脑的体验活动,遂报名体验。 由于在阿里云开发者社区是专家博主,有幸获得一年的 4核 8G 无影云电脑的体验机会。 试用了几天,下面从无影云电脑的用户群体、无影云电脑的使用场景,我的使用感受,目前还存在的问题等方面,简单谈谈自己的感受。
28 0
Redis 如何存储上亿级别的用户状态?
前段时间,在网上看到一道面试题: 如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量。 觉得很有意思,就仔细想
6 0
Wakawaka:华人企业用宜搭把数字化经验带进非洲
钉钉宜搭帮助Wakawaka大幅提升了内部管理效率,降低了70%的人力成本。
9 0
Java 简介(Java 发展概述)|学习笔记
快速学习 Java 简介(Java 发展概述)
8 0
无影云畅享
“无影是阿里云打造的云端一体、安全高效的一站式云上办公空间。无影的云桌面、云应用、应用中心、安全浏览器等一系列的云办公能力,通过流化的技术,提供给终端用户,在算力、安全、成本、敏捷、开放等方面,无影具有超越传统PC的优势。”
15 0
文本排序与搜索命令 | 学习笔记
快速学习文本排序与搜索命令。
7 0
C# 同步 异步 回调 状态机 async await Demo
C# 同步 异步 回调 状态机 async await Demo 我们项目的客户端和服务端通信用的是WCF,我就想,能不能用异步的方式调用WCF服务呢?或者说能不能用async await的方式调用WCF服务呢?
7 0
+关注
1038
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载