概述

  1. FlexGrid for WinForm 采用了最新的数据绑定技术,并与Microsoft .NET Framework无缝集成。 因此,您可以获得易于使用的灵活网格控件,用于创建用户友好界面,以显示、编辑、格式化、组织、汇总和打印表格数据。
  2. FlexGrid的DataMap属性允许您实现“已翻译”的行或列。在转换的行或列中,网格不显示存储在单元格中的值。相反,它会在列的DataMap中查找这些值并显示映射的值。
  3. 有时您可能需要在C1FlexGrid / C1FlexGridClassic中使用DataMap来显示项目列表。即使列表包含大量数据,其加载也是平滑且即时的。在本文中,我们将讨论如何使用自定义ComboBox编辑器以加快DataMap网格的加载时间。

创建编辑器并在Grid中托管它

所有内置网格编辑器都实现IC1EmbeddedEditor接口,ComponentOne Input库中的控件也是如此。 如果我们想要使用带有C1FlexGrid的第三方编辑器,我们需要创建一个派生类并实现此接口。

实现步骤

创建一个模型类MyComboItem来绑定ComboBox。

public class MyComboItem{public int Id { get; set; }public string Display { get; set; }
}

创建一个自定义控件MyComboBox,它继承ComboBox类并实现IC1EmbeddedEditor接口。

public partial class MyComboBox : ComboBox, IC1EmbeddedEditor{public MyComboBox(){InitializeComponent();}#region IC1EmbeddedEditor-Members// Initialize editor: select transferred valuepublic void C1EditorInitialize(object value, IDictionary editorAttributes){this.SelectedValue = value;}//Get value from editorpublic object C1EditorGetValue(){return (base.SelectedItem as MyComboItem)?.Id; }//Value is always TRUEpublic bool C1EditorValueIsValid(){return true;}//Adjust editor sizepublic void C1EditorUpdateBounds(Rectangle rc){if (rc.Height != -1 && rc.Width != -1){this.Location = new Point(rc.X, rc.Y);this.Width = rc.Width;this.Height = this.DefaultSize.Height;}else{//Editor has scrolled out of the picture. Take over the height / width of -1.this.Width = -1;this.Height = -1;}}//TRUE if Escape or Enterpublic bool C1EditorKeyDownFinishEdit(KeyEventArgs e){if (e.KeyCode == Keys.Escape || e.KeyCode == Keys.Enter)return true;return false;}//Format and editor valuepublic string C1EditorFormat(object value, string mask){return null;}//Style of Editorspublic UITypeEditorEditStyle C1EditorGetStyle(){return UITypeEditorEditStyle.DropDown;}#endregion}
}

创建MyComboBox类的实例,并将其分配给网格的列编辑器,如下所示:

Dictionary<int, string> DMap = new Dictionary<int, string>();ComboBox c1 = new MyComboBox();List<MyComboItem> _list = new List<MyComboItem>();              c1.DataSource = _list;c1.ValueMember = "Id";c1.DisplayMember = "Display";            _flex.Cols[2].Editor = c1;_flex.Cols[2].DataMap = DMap; //use DataMap to show IDs as values.

了解更多

ActiveReports: 全面满足 .NET 报表开发需求
图片描述

ComponentOne Enterprise:.NET开发的“瑞士军刀”,功能全面、简单易用的 Visual Studio 组件集
图片描述

【.NET开发之美】如何提高.NET DataMap中的加载速度相关推荐

  1. iframe js 加载失败_如何提高Vue项目首页的加载速度

    为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...

  2. vue 加载太慢_如何提高Vue项目首页的加载速度

    为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...

  3. vue 项目加载顺序_如何提高Vue项目首页的加载速度

    为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...

  4. 【前端开发】25种提高网页加载速度的方法和技巧

    尊重原创:http://blog.csdn.net/wxzking/article/details/4089384 您希望加快网页的加载速度吗?了解如何通过缩短加载时间来改善拨号上网用户的浏览体验,在 ...

  5. Android开发——H5容器加载速度优化方案

    1. 背景介绍 在偏重活动运营的电商App中,受制于App版本审核,具备开发周期短.可灵活发布等特点的H5页面受到青睐,承载了很多重要业务.但App Webview存在令人烦恼的性能问题,特别突出的是 ...

  6. WEB前端性能优化,提高页面加载速度

    可能有人会说:网站的性能是后端工程师的事情,与前端并无多大关系.我只能说,too young too simple.事实上,只有10%~20%的最终用户响应时间是用在从Web服务器获取HTML文档并传 ...

  7. Vue项目提高页面加载速度的方法

    1.路由懒加载 路由懒加载简单来说就是访问到当前页面才会加载相关资源,提高页面加载速度. {   path: '/login', name: 'login',   component: resolce ...

  8. 如何提高网站的页面加载速度

    英文 | https://javascript.plainenglish.io/how-to-improve-your-websites-page-load-speed-8fa81caf3ed2 翻译 ...

  9. 前端性能优化:如何提高页面加载速度和用户体验

    第一章:介绍 当今互联网时代,网站的性能对于用户体验至关重要.一个快速加载的网页不仅能提高用户的满意度,还能增加页面的转化率.而在前端开发中,性能优化是一个永恒的话题.本篇博客将为大家分享一些关于前端 ...

最新文章

  1. python代码示例图形-Python使用matplotlib绘制三维图形示例
  2. 好程序员web前端分享函数作用域及递归
  3. 简单易懂的自动驾驶科普知识
  4. 5G PDCCH介绍
  5. linux进程socket通信,linux进程间通信--socket套接字 实例代码
  6. REST framework(2)
  7. 原生node创建路由的分层
  8. python最简单的图形编程_Python123
  9. 零基础学python好学吗-想要0基础学python要怎么做?python好学吗?
  10. 指针的高阶用法——指向指针的指针
  11. 【转载】李开复宣布与金山合作 谷歌迈出中国第三步
  12. java中io创建文件和读取文件
  13. 海康威视视频监控客户端开发实践
  14. logo字体在线设计工具
  15. Nginx之读写分离
  16. Mask R-CNN结构细节回顾
  17. h5 c3 特效网站
  18. org.apache.solr.client.solrj.impl.CloudSolrServer$RouteException: Exception writing document id xxxx
  19. 华硕天选1隐藏盘恢复系统
  20. 【技术点】数据结构--B树系列之B+树(五)

热门文章

  1. python 列表、字典转json字符串
  2. 十三、进程互斥的软件实现方法
  3. ubuntu 14.04 16.04 18.04使用阿里源
  4. 人群密度估计--Leveraging Unlabeled Data for Crowd Counting by Learning to Rank
  5. LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal-前序中序遍历构造二叉树-Python和Java递归解法
  6. ajax+lucene pdf,基于Ajax/Lucene的站内搜索技术研究
  7. mysql 手动写时间_关于数据库中如何存储时间的一点思考
  8. centos7-同步时间
  9. java 网络编程简单聊天_网络编程之 TCP 实现简单聊天
  10. ajax与easyui树节点,EasyUI中的tree用法介绍