原創|使用教程|編輯:龔雪|2022-08-18 10:56:36.340|閱讀 170 次
概述:本文主要為大家介紹如何使用Telerik UI for WinForms中的RadFilterView組件來過濾數據,歡迎下載產品體驗~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
您是否希望應用程序能夠擁有過濾選項,來幫助用戶快速過濾?現在可以使用Telerik UI for WinForms全新的RadFilterView控件,它可以幫您做到!
RadFilterView是一個控件,它允許您的用戶使用直觀的UI輕松過濾數據,它旨在與我們最流行的控件一起使用,如 RadGridView、RadListView、RadTreeView 等。您可以簡單地設置 RadFilterView 的 AssociatedControl 屬性,當用戶更改某些過濾器時,關聯的控件將立即被過濾。
如果您不想在每次用戶進行單個更改時觸發關聯控件的過濾,可以更改FilteringMode屬性。
this.radFilterView1.FilteringMode = FilteringMode.Programmatically;
該控件也可以獨立工作(沒有關聯的控件),在這種模式下,需要設置DataSource屬性,以便為控件提供數據。
當用戶更改任何類別中的值時,將觸發控件的 FilterChanged 事件。 在事件處理程序中,您可以使用 FilterDescriptors 的集合,它用于過濾我們的大多數數據控件,或者 RadFilterView.Expression 屬性,它返回一個類似 SQL 查詢的字符串:
"[FirstName] IN ('Bruce','Chris') AND [SSN] >= 2882255 AND [Married] = True"
它是如何工作的? 設置 DataSource 時,過濾視圖控件為相應數據的每一列創建一個類別,然后遍歷每條記錄并存儲值,根據列的數據類型,控件創建不同類型的類別:
這些類別提供了多種選項,您可以在其中將整個類別替換為自定義類別、自定義類別或僅更改值。
現在讓我們看一下綁定到文本數據的過濾器視圖,以下是默認創建的文本類別的外觀:
如您所見,類別標題文本不是用戶友好的,因為它與源列名稱相同,可以在 CategoryCreating 或 CategoryCreated 事件中更改類別顯示名稱。
private void RadFilterView1_CategoryCreated(object sender, FilterViewCategoryCreatedEventArgs e) { if (e.Category.PropertyName == "product_name") { e.Category.DisplayName = "Product Name"; } }
可以看到的另一件事是,這些值與它們在數據源中出現的順序相同。 當我們有大量文本值時,用戶可以更輕松地瀏覽按字母排序的數據,對值重新排序的正確位置是 CategoryCreating 事件,在這里您甚至可以替換整個類別,這是如何對值進行排序的代碼示例:
private void RadFilterView1_CategoryCreating(object sender, FilterViewCategoryCreatingEventArgs e) { List<object> values = e.Values.ToList(); values.Sort(); e.Values = values; }
為了使其更具可讀性,我們可以將每個產品的第一個字母大寫。 這可以在文本類別的 ItemCreated 事件中完成并更改項目的文本(使用區域性 TextInfo 的 ToTitleCase 方法),附加到此事件的正確位置再次位于 CategoryCreating 事件中。
private void RadFilterView1_CategoryCreating(object sender, FilterViewCategoryCreatingEventArgs e) { List<object> values = e.Values.ToList(); values.Sort(); e.Values = values; FilterViewTextCategoryElement category = e.Category as FilterViewTextCategoryElement; category.ItemCreated += this.Category_ItemCreated; } private void Category_ItemCreated(object sender, FitlerViewTextCategoryItemCreatedEventArgs e) { TextInfo info = CultureInfo.CurrentCulture.TextInfo; string newText = info.ToTitleCase(e.Item.Text); e.Item.Text = newText; }
最后的結果:
Telerik UI for WinForms擁有適用Windows Forms的110多個令人驚嘆的UI控件。所有的UI for WinForms控件都具有完整的主題支持,可以輕松地幫助開發人員在桌面和平板電腦應用程序提供一致美觀的下一代用戶體驗。
Telerik_KendoUI產品技術交流群:726377843 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網