在SilverLight项目中,实现模糊查询,并将值绑定到列表中,使用了Telerik中的<telerik:RadMaskedTextBox>控件。

要先添加命名空间的引用: xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"

并且项目要添加引用:

xaml页面代码:

  <!-- 检索-->
<Border>
<Grid HorizontalAlignment="Left" Width="150">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="/MASP;Component/Images/Find.png" Stretch="Uniform" Margin="4"></Image>
<telerik:RadMaskedTextBox x:Name="mask_treat" Grid.Column="1" Margin="3" BorderThickness="0"
EmptyContent="输入关键字进行检索" MaskType="None" VerticalAlignment="Center" ValueChanged="mask_treat_ValueChanged"></telerik:RadMaskedTextBox>
</Grid>
</Border>

xaml.cs代码:文本内容发生改变事件ValueChanged

  private void mask_treat_ValueChanged(object sender, Telerik.Windows.RadRoutedEventArgs e)
{
try
{
string value = mask_treat.MaskedText == null ? "" : mask_treat.MaskedText.ToString().Trim(); IList<GridViewDataColumn> ViewDataColumns = new List<GridViewDataColumn>();
ViewDataColumns.Add(Rgv_treatlist.Columns[] as GridViewDataColumn);
ViewDataColumns.Add(Rgv_treatlist.Columns[] as GridViewDataColumn);
ViewDataColumns.Add(Rgv_treatlist.Columns[] as GridViewDataColumn);
CustomFilterDescriptor FilterDescriptor = new CustomFilterDescriptor(ViewDataColumns);
FilterDescriptor.FilterValue = value;
Rgv_treatlist.FilterDescriptors.Clear();
Rgv_treatlist.FilterDescriptors.Add(FilterDescriptor);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

CustomFilterDescriptor类代码:

 using Telerik.Windows.Controls;
using Telerik.Windows.Data; public class CustomFilterDescriptor : FilterDescriptorBase
{
private readonly CompositeFilterDescriptor compositeFilterDesriptor;
private static readonly ConstantExpression TrueExpression = System.Linq.Expressions.Expression.Constant(true);
private string filterValue; public CustomFilterDescriptor(IEnumerable<Telerik.Windows.Controls.GridViewColumn> columns)
{
this.compositeFilterDesriptor = new CompositeFilterDescriptor();
this.compositeFilterDesriptor.LogicalOperator = FilterCompositionLogicalOperator.Or; foreach (GridViewDataColumn column in columns)
{
this.compositeFilterDesriptor.FilterDescriptors.Add(this.CreateFilterForColumn(column));
}
} public string FilterValue
{
get
{
return this.filterValue;
}
set
{
if (this.filterValue != value)
{
this.filterValue = value;
this.UpdateCompositeFilterValues();
this.OnPropertyChanged("FilterValue");
}
}
} protected override System.Linq.Expressions.Expression CreateFilterExpression(ParameterExpression parameterExpression)
{
if (string.IsNullOrEmpty(this.FilterValue))
{
return TrueExpression;
}
try
{
return this.compositeFilterDesriptor.CreateFilterExpression(parameterExpression);
}
catch
{
} return TrueExpression;
} private IFilterDescriptor CreateFilterForColumn(GridViewDataColumn column)
{
FilterOperator filterOperator = GetFilterOperatorForType(column.DataType);
FilterDescriptor descriptor = new FilterDescriptor(column.UniqueName, filterOperator, this.filterValue);
descriptor.MemberType = column.DataType; return descriptor;
} private static FilterOperator GetFilterOperatorForType(Type dataType)
{
return dataType == typeof(string) ? FilterOperator.Contains : FilterOperator.IsEqualTo;
} private void UpdateCompositeFilterValues()
{
foreach (FilterDescriptor descriptor in this.compositeFilterDesriptor.FilterDescriptors)
{
object convertedValue = DefaultValue(descriptor.MemberType); try
{
convertedValue = Convert.ChangeType(this.FilterValue, descriptor.MemberType, null);
}
catch
{
} if (!descriptor.MemberType.IsAssignableFrom(typeof(DateTime)))
{
descriptor.Value = convertedValue; ; }
}
} private static object DefaultValue(Type type)
{
if (type.IsValueType)
{
return Activator.CreateInstance(type);
} return null;
}
}

记录完成。

【Telerik】查询控件<telerik:RadMaskedTextBox>的使用的更多相关文章

  1. 【Telerik】<telerik:RadGridView/>控件的使用

    学习Telerik第三方控件中的WPF时,对于RadGridView控件做的一些记录. AutoGenerateColumns:启动时是否生成列 ShowGroupPanel:是否显示表格的分组名称 ...

  2. WPF第三方控件Telerik

    帮助文档:http://www.telerik.com/help/wpf/gridview-selection-via-checkbox.html Telerik专注于微软.Net平台的表示层与内容管 ...

  3. 自定义延时查询控件---valen

    当查询已经成标配 查询是已成为每个应用常用的功能,也正是这样前端后对查询的设计需求也日益增加,本文针对前端(Android端)查询控件做一个例子: 控件设计与逻辑 产品的设计UI图; 要达到如下 1| ...

  4. 基于 element-plus 封装一个依赖 json 动态渲染的查询控件

    前情回顾 基于 el-form 封装一个依赖 json 动态渲染的表单控件 Vue3 封装第三方组件(一)做一个合格的传声筒 功能 使用 vue3 + element-plus 封装了一个查询控件,专 ...

  5. UI控件Telerik UI for WinForms发布R1 2019|附下载

    Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件.所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌 ...

  6. WinFrom 第三方控件 TeleRik控件

    1.首先从工具-拓展与应用中下载安装  TeleRik WinFroms VsExtensions   TeleRik dll文件     2.工具箱控件  将Telerik控件更新过来 3.新建一个 ...

  7. WPF界面控件Telerik UI for WPF发布R2 2019 SP1|实现新的属性

    Telerik UI for WPF拥有超过100个控件来创建美观.高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序.UI for WPF支持MVVM.触摸等,创建的应用程序可靠且结构良 ...

  8. 移动UI控件Telerik UI for Xamarin发布R2 2019|引入Map控件

    Telerik UI for Xamarin是一个构建跨平台移动应用程序的原生UI.Telerik UI for Xamarin使用Xamarin.Forms技术,它可以让开发人员从一个单一的共享C# ...

  9. UI控件Telerik UI for Silverlight发布R2 2019|附下载

    Telerik UI for Silverlight包含了超过100个能用于纯Silverlight应用程序中或能作为现有ASP.NET应用程序的一部分的UI控件.通过与我们的WPF控件共享一个相同的 ...

随机推荐

  1. ServiceStack.Redis订阅发布服务的调用(Z)

      1.Redis订阅发布介绍Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式.发布者和订阅者之间使用频 ...

  2. ACM/ICPC 之 三维计算几何+暴力枚举+判重(HDU5839)

    CCPC网赛第八题,求立体几何数量,题解见注释 //立体几何-求满足要求的四面体个数 //要求1:至少4条边相等 //要求2:四条边相等时,另两条边一定不相邻(即对边) //题解:以当前边为不相邻的其 ...

  3. js识别当前用户设备的几个方法

    公司要做一个APP下载页面,里面需要判断是安卓还是苹果访问本页面,最开始想偷懒直接在给IOSAPP返回IOSAPP商店地址,然后Android直接进行访问.但想着毕竟做两个页面不利于后期维护和修改,打 ...

  4. Winform的"透明"

    手头目前的一个项目(.Net4.0)中有这样一个需求:在程序中要进行视频采集,并且要在视频影像区域进行绘图编辑,对绘图能进行拉伸,拖拽和删除.从需求来看,必须得在视频影像区的上方盖一层画布才能这么操作 ...

  5. mysql workbench连接不上远程数据库,xshell无法连接远程主机的问题

    1.先说xshell无法连接的问题 最近使用virtualbox装了个ubuntu-16.04,然后在win7上使用xshell连接,首先确认win7能ping通虚拟机ip.然后确认是否安装了open ...

  6. js获取cookie

    js获取cookie 之前用jQuery.cookie来获取cookie,虽然简单,但是项目上又多引用了一个插件,总觉得不太好,下面是我封装的js原生获取cookie的函数. function get ...

  7. Maven之安装与简单入门一

    Maven 是一个项目管理和构建自动化工具,我们最关心的是它的项目构建功能.Maven 使用惯例优于配置的原则. 1,下载安装包,并根据文档说明安装: http://maven.apache.org/ ...

  8. Linux Yum 安装JDK

    1.查看CentOS自带JDK是否已安装. 输入:yum list installed |grep java. 2.若有自带安装的JDK,如何卸载CentOS系统自带Java环境? 卸载JDK相关文件 ...

  9. iOS多线程笔记

    在iOS开发中,有三种多线程处理方式: 1. 利用NSThread 2. NSOperation和NSOperationQueue 3. 利用GCD(Grand Central Dispatch) 使 ...

  10. C#水晶报表,窗体不显示,闪退

    一.问题说明 由于VS2008以后水晶报表不在集成,要用的话需要单独下载. 这里注意如果是用在C#窗体程序里的话一定要下载exe文件,安装msi文件的话VS工具栏里找不到水晶报表控件的.如果你的是64 ...