【.NET开发之美】如何提高.NET DataMap中的加载速度
概述
- FlexGrid for WinForm 采用了最新的数据绑定技术,并与Microsoft .NET Framework无缝集成。 因此,您可以获得易于使用的灵活网格控件,用于创建用户友好界面,以显示、编辑、格式化、组织、汇总和打印表格数据。
- FlexGrid的DataMap属性允许您实现“已翻译”的行或列。在转换的行或列中,网格不显示存储在单元格中的值。相反,它会在列的DataMap中查找这些值并显示映射的值。
- 有时您可能需要在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中的加载速度相关推荐
- iframe js 加载失败_如何提高Vue项目首页的加载速度
为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...
- vue 加载太慢_如何提高Vue项目首页的加载速度
为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...
- vue 项目加载顺序_如何提高Vue项目首页的加载速度
为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...
- 【前端开发】25种提高网页加载速度的方法和技巧
尊重原创:http://blog.csdn.net/wxzking/article/details/4089384 您希望加快网页的加载速度吗?了解如何通过缩短加载时间来改善拨号上网用户的浏览体验,在 ...
- Android开发——H5容器加载速度优化方案
1. 背景介绍 在偏重活动运营的电商App中,受制于App版本审核,具备开发周期短.可灵活发布等特点的H5页面受到青睐,承载了很多重要业务.但App Webview存在令人烦恼的性能问题,特别突出的是 ...
- WEB前端性能优化,提高页面加载速度
可能有人会说:网站的性能是后端工程师的事情,与前端并无多大关系.我只能说,too young too simple.事实上,只有10%~20%的最终用户响应时间是用在从Web服务器获取HTML文档并传 ...
- Vue项目提高页面加载速度的方法
1.路由懒加载 路由懒加载简单来说就是访问到当前页面才会加载相关资源,提高页面加载速度. { path: '/login', name: 'login', component: resolce ...
- 如何提高网站的页面加载速度
英文 | https://javascript.plainenglish.io/how-to-improve-your-websites-page-load-speed-8fa81caf3ed2 翻译 ...
- 前端性能优化:如何提高页面加载速度和用户体验
第一章:介绍 当今互联网时代,网站的性能对于用户体验至关重要.一个快速加载的网页不仅能提高用户的满意度,还能增加页面的转化率.而在前端开发中,性能优化是一个永恒的话题.本篇博客将为大家分享一些关于前端 ...
最新文章
- python代码示例图形-Python使用matplotlib绘制三维图形示例
- 好程序员web前端分享函数作用域及递归
- 简单易懂的自动驾驶科普知识
- 5G PDCCH介绍
- linux进程socket通信,linux进程间通信--socket套接字 实例代码
- REST framework(2)
- 原生node创建路由的分层
- python最简单的图形编程_Python123
- 零基础学python好学吗-想要0基础学python要怎么做?python好学吗?
- 指针的高阶用法——指向指针的指针
- 【转载】李开复宣布与金山合作 谷歌迈出中国第三步
- java中io创建文件和读取文件
- 海康威视视频监控客户端开发实践
- logo字体在线设计工具
- Nginx之读写分离
- Mask R-CNN结构细节回顾
- h5 c3 特效网站
- org.apache.solr.client.solrj.impl.CloudSolrServer$RouteException: Exception writing document id xxxx
- 华硕天选1隐藏盘恢复系统
- 【技术点】数据结构--B树系列之B+树(五)
热门文章
- python 列表、字典转json字符串
- 十三、进程互斥的软件实现方法
- ubuntu 14.04 16.04 18.04使用阿里源
- 人群密度估计--Leveraging Unlabeled Data for Crowd Counting by Learning to Rank
- LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal-前序中序遍历构造二叉树-Python和Java递归解法
- ajax+lucene pdf,基于Ajax/Lucene的站内搜索技术研究
- mysql 手动写时间_关于数据库中如何存储时间的一点思考
- centos7-同步时间
- java 网络编程简单聊天_网络编程之 TCP 实现简单聊天
- ajax与easyui树节点,EasyUI中的tree用法介绍