尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何使用界面控件Telerik UI for WinForms过滤数据?这里有答案

如何使用界面控件Telerik UI for WinForms过滤数据?这里有答案 您是否希望应用程序能够拥有过滤选项来帮助用户快速过滤现在可以使用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 时过滤视图控件为相应数据的每一列创建一个类别然后遍历每条记录并存储值根据列的数据类型控件创建不同类型的类别文本字符串数据该类别创建具有所有唯一值的复选框项目列表您可以在单选和多选之间切换。数字数据此类别显示数字输入 (RadSpinEditorElements)并限制用户在数据源中找到的最小值和最大值之间更改值。 旋转编辑器下方还添加了一个 RadTrackbarElement滑块以更好地控制值。布尔数据它是文本类别的父级并显示两个具有真假值的复选框。DateTime此类别使用两个日期输入 (RadDateTimePickerElements)就像数字输入一样用户只能在 DataSource 的最小值和最大值之间更改日期。Indicators过滤指标的目的是让用户可以方便地识别出值发生变化的类别例如带有一些选中复选框的文本类别或最小值发生变化的数字类别。 当用户折叠了一些类别并且只看到标题文本时这非常有用该指示器还允许清除当前类别的过滤器或控件中的所有过滤器。使用类别这些类别提供了多种选项您可以在其中将整个类别替换为自定义类别、自定义类别或仅更改值。现在让我们看一下绑定到文本数据的过滤器视图以下是默认创建的文本类别的外观如您所见类别标题文本不是用户友好的因为它与源列名称相同可以在 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) { Listobject values e.Values.ToList(); values.Sort(); e.Values values; }为了使其更具可读性我们可以将每个产品的第一个字母大写。 这可以在文本类别的 ItemCreated 事件中完成并更改项目的文本使用区域性 TextInfo 的 ToTitleCase 方法附加到此事件的正确位置再次位于 CategoryCreating 事件中。private void RadFilterView1_CategoryCreating(object sender, FilterViewCategoryCreatingEventArgs e) { Listobject 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; }最后的结果
返回列表