【.NET開發之美】使用ComponentOne提高.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 value public void C1EditorInitialize(object value, IDictionary editorAttributes) { this.SelectedValue = value; } //Get value from editor public object C1EditorGetValue() { return (base.SelectedItem as MyComboItem)?.Id; } //Value is always TRUE public bool C1EditorValueIsValid() { return true; } //Adjust editor size public 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 Enter public bool C1EditorKeyDownFinishEdit(KeyEventArgs e) { if (e.KeyCode == Keys.Escape || e.KeyCode == Keys.Enter) return true; return false; } //Format and editor value public string C1EditorFormat(object value, string mask) { return null; } //Style of Editors public 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.
ComponentOne 是一款專注於企業應用高效能開發的 .NET 全功能控制元件套包,包含300餘種控制元件,支援7大平臺,涵蓋7大功能模組。較於市面上其他同類產品,ComponentOne更加輕盈,功能更加強大,20多年的開發經驗,將為您的應用系統帶來更為安全的使用體驗。純中文操作介面,一對一技術支援,廠商級的技術服務,共同造就了這款國際頂級控制元件套包。
關於 :
賦能開發者!葡萄城公司成立於 1980 年,是全球領先的集開發工具、商業智慧解決方案、管理系統設計工具於一身的軟體和服務提供商。西安葡萄城是其在中國的分支機構,面向全球市場提供軟體研發服務,併為中國企業的資訊化提供國際先進的開發工具、軟體和研發諮詢服務。葡萄城的控制元件和軟體產品在國內外屢獲殊榮,在全球被數十萬家企業、學校和政府機構廣泛應用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28298702/viewspace-2218586/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [.NET][ASP.NET MVC 5 網站開發之美]書籍內容介紹及pdf下載ASP.NETMVC網站
- .net 使用Docker開發Docker
- Python使用.NET開發的類庫來提高你的程式執行效率Python
- .NET開發人員如何開始使用ML.NET
- .Net 8.0 下的新RPC,IceRPC之使用Dev Containers進行 .NET QUIC 精簡開發RPCdevAIUI
- .NET開發中合理使用物件對映庫,簡化和提高工作效率物件
- 我的.net開發歷程:初入快速開發
- 提高網站載入速度的一些小技巧網站
- Nginx開啟gzip壓縮大幅提高頁面載入速度Nginx
- Redis在.net中的使用(2).net專案中的Redis使用Redis
- .net 溫故知新:【10】.NET ORM框架EFCore使用入門之CodeFirs、DBFirstORM框架
- 使用.NET開發搭建OpenAI模型的中間服務端OpenAI模型服務端
- ComponentOne 2018V2正式釋出,提供輕量級的 .NET
- 提高網站載入速度的五大方法網站
- .NET Core(.NET6)中gRPC使用RPC
- gRPC之.Net6中的初步使用說明RPC
- 使用 .NET 進行遊戲開發遊戲開發
- goalng中net/rpc的使用GoRPC
- 【記】《.net之美》之讀書筆記(二) C#中的泛型筆記C#泛型
- 如何提高碼農產量,基於ASP.NET MVC的敏捷開發框架之自定義表單開發ASP.NETMVC敏捷框架
- Redis在.net中的使用(1)下載安裝RedisRedis
- instant.page:提高網站頁面載入速度網站
- .NET 6 亮點之工作負載,它是統一 .NET 的基礎負載
- .NET混合開發解決方案11 WebView2載入的網頁中JS呼叫C#方法WebView網頁JSC#
- 使用JsonTextReader提高Json.NET反序列化的效能JSON
- Redis在.net中的使用(6)Redis併發鎖Redis
- 使用 .NET MAUI 開發 ChatGPT 客戶端UIChatGPT客戶端
- 如何提高碼農產量,基於ASP.NET MVC的敏捷開發框架之自定義表單ASP.NETMVC敏捷框架
- .NET6 平臺系列1 .NET發展史之.NET Framework簡介Framework
- MongoDB從入門到實戰之.NET Core使用MongoDB開發ToDoList系統(2)-Swagger框架整合MongoDBSwagger框架
- 使用 ASP.NET Core 3.1 的微服務開發指南ASP.NET微服務
- 【.NET Core】ASP.NET Core之IdentityServer4(1):快速入門ASP.NETIDEServer
- 在 WSL Ubuntu 上使用 .NET 進行跨平臺開發新手入門Ubuntu
- .NET Core 中AutoMapper的配置及使用APP
- ado.net中事務的使用
- LiteDB在.NET中如何使用
- Advanced .Net Debugging 6:程式集載入器
- .NET科普:.NET簡史、.NET Standard以及C#和.NET Framework之間的關係C#Framework