【Telerik】查询控件<telerik:RadMaskedTextBox>的使用
在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>的使用的更多相关文章
- 【Telerik】<telerik:RadGridView/>控件的使用
学习Telerik第三方控件中的WPF时,对于RadGridView控件做的一些记录. AutoGenerateColumns:启动时是否生成列 ShowGroupPanel:是否显示表格的分组名称 ...
- WPF第三方控件Telerik
帮助文档:http://www.telerik.com/help/wpf/gridview-selection-via-checkbox.html Telerik专注于微软.Net平台的表示层与内容管 ...
- 自定义延时查询控件---valen
当查询已经成标配 查询是已成为每个应用常用的功能,也正是这样前端后对查询的设计需求也日益增加,本文针对前端(Android端)查询控件做一个例子: 控件设计与逻辑 产品的设计UI图; 要达到如下 1| ...
- 基于 element-plus 封装一个依赖 json 动态渲染的查询控件
前情回顾 基于 el-form 封装一个依赖 json 动态渲染的表单控件 Vue3 封装第三方组件(一)做一个合格的传声筒 功能 使用 vue3 + element-plus 封装了一个查询控件,专 ...
- UI控件Telerik UI for WinForms发布R1 2019|附下载
Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件.所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌 ...
- WinFrom 第三方控件 TeleRik控件
1.首先从工具-拓展与应用中下载安装 TeleRik WinFroms VsExtensions TeleRik dll文件 2.工具箱控件 将Telerik控件更新过来 3.新建一个 ...
- WPF界面控件Telerik UI for WPF发布R2 2019 SP1|实现新的属性
Telerik UI for WPF拥有超过100个控件来创建美观.高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序.UI for WPF支持MVVM.触摸等,创建的应用程序可靠且结构良 ...
- 移动UI控件Telerik UI for Xamarin发布R2 2019|引入Map控件
Telerik UI for Xamarin是一个构建跨平台移动应用程序的原生UI.Telerik UI for Xamarin使用Xamarin.Forms技术,它可以让开发人员从一个单一的共享C# ...
- UI控件Telerik UI for Silverlight发布R2 2019|附下载
Telerik UI for Silverlight包含了超过100个能用于纯Silverlight应用程序中或能作为现有ASP.NET应用程序的一部分的UI控件.通过与我们的WPF控件共享一个相同的 ...
随机推荐
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- CSS3中的px,em,rem,vh,vw辨析
1.px:像素,精确显示 2.em:继承父类字体的大小,相当于"倍",如:浏览器默认字体大小为16px=1em,始终按照div继承来的字体大小显示,进场用于移动端 em换算工具:h ...
- 10分钟了解设计模式(C#)
最近把<大话设计模式>重温了下(看完序才知道原来作者是也是博客园园友,这本书的最早博客版本在这里).体会最深的就是面向接口编程的重要性,如何在自己的项目中进行抽象,合理的利用各种设计模式. ...
- Application package 'AndroidManifest.xml' must have a minimum of 2 segments.
看了源码就是packagename里面必须包含一个. 源码在: ./sdk/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/id ...
- Python之str()与repr()的区别
Python之str()与repr()的区别 str()一般是将数值转成字符串,主要面向用户. repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思.如list, ...
- 【WEB】web www http html hypermedia hypertext 技术名词的意思
www WWW是环球信息网的缩写,(亦作"Web"."WWW"."'W3'",英文全称为"World Wide Web" ...
- 总结一下项目中遇到的分页问题,使用bootstrap-table来做的后台分页,大家可以借鉴一下 (分页第一篇)
前台进入bootstrap的js和css文件,我就不多少了,另外要引进bootstrap-table的js和css 废话不多说,直接代码. 框架为ssm,代码很清楚 <div class=& ...
- c/c++的Soap应用
1. 关于soap 在许多项目中团队中,我们常常会听到这样的话:我们这里是用webservice交互的.而说话的场景往往就是交互对象双方比较异构,所谓异构.即双方是不同的开发语言.不同的运行环境等.比 ...
- centos下建立双机信任关系
在有些情况下,我们希望在两台centos机器之间建立ssh连接的时候,可以不用输入密码.最常见的情况就是在使用脚本做数据库备份的时候.这种情况下,我们可以通过公钥/私钥来建立双机之间的信任关系. 网上 ...
- python中date、datetime、string的相互转换
import datetime import time string转datetime str = '2012-11-19' date_time = datetime.datetime.strptim ...