dev 中 字符串转中文拼音缩写,对grid列表进行模糊匹配,grid获取焦点行,gridlookupedit控件用拼音模糊匹配下拉选项

番外篇:、

//该方法是将字符串转化为中文拼音的首写字母大写,

public static string RemoveSpecialCharacters(string str)
{
try
{
if (string.IsNullOrWhiteSpace(str)) { return str; }
var result = Regex.Replace(str, "[^0-9A-Za-z]", "");
if (string.IsNullOrWhiteSpace(result)) { return "0"; }
return result;
}
catch (Exception ex)
{
//Logger.Error("移除字符串中的特殊字符", ex);
return string.Empty;
}
}

//在文本框中输入拼音,根据拼音匹配grid的数据

this.gdv_PQConfigure.ActiveFilter.NonColumnFilter
= string.Format("[NAME_PINYIN] like ‘%{0}%‘ OR [DEPT_PINYIN] like ‘%{0}%‘", this.lentxt_Search.Text);    //NAME_PINYIN和DEPT_PINYIN是grid的felidname绑定的列名。

//grid获取焦点行

private void FocusRowColumn(GridView gdv, int rowHandle, string columnName)
{
gdv.FocusedRowHandle = rowHandle;
gdv.FocusedColumn = gdv.Columns[columnName];
gdv.ShowEditor();
}

//gridlookupedit用拼音模糊匹配下拉选项

private void User_FilterLookup(object sender)
{
GridLookUpEdit edit = sender as GridLookUpEdit;
GridView gridView = edit.Properties.View as GridView;
FieldInfo fi = gridView.GetType().GetField("extraFilter", BindingFlags.NonPublic | BindingFlags.Instance);
BinaryOperator op2 = new BinaryOperator("PINYIN", edit.AutoSearchText + "%", BinaryOperatorType.Like);
BinaryOperator op3 = new BinaryOperator("PINYIN", "%" + edit.AutoSearchText + "%", BinaryOperatorType.Like);
BinaryOperator op1 = new BinaryOperator("NAME", "%" + edit.AutoSearchText + "%", BinaryOperatorType.Like);     //name是要匹配的实体字段名
string filterCondition = new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[] { op1, op2, op3 }).ToString();
fi.SetValue(gridView, filterCondition);
MethodInfo mi = gridView.GetType().GetMethod("ApplyColumnsFilterEx", BindingFlags.NonPublic | BindingFlags.Instance);
mi.Invoke(gridView, null);
}

//在事件中调用

private void repEditUser_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e)
{
var _Handle = this.Handle;
BeginInvoke(new MethodInvoker(delegate ()
{
User_FilterLookup(sender);
}));
}

原文地址:https://www.cnblogs.com/jiuyueBlog/p/9108563.html

时间: 2024-10-26 07:35:24

dev 中 字符串转中文拼音缩写,对grid列表进行模糊匹配,grid获取焦点行,gridlookupedit控件用拼音模糊匹配下拉选项的相关文章

实现Excel单元格中的下拉选项

目的:控制数据录入的类型和具体数据的限制,避免数据错误输入 操作步骤: 1.选中需要设置下拉菜单的单元格 2.单击数据选项卡---数据有效性---设置选项卡---允许功能中选择序列---在来源编辑框中输入需要设置下拉菜单选择内容的编写,每个选择项之间用英文逗号隔开, 3.数据来源也可以事先做好数据来源的编写,然后引用即可

获取不到Repeater控件中的CheckBox选中状态

写在前面的话:在做一个项目的时候,需要使用到Repeater控件,并且在Repeater控件内放置了CheckBox控件来标志需要删除的行,选中后,在后台取到的CheckBox的值总是为false.最后发现是在PageLoad函数中没有判断是否是回发就绑定了Repeater控件的数据,那么每次进入页面CheckBox控件的值当然被刷新为false了. 前台页面: 1 <div class="contianer p10"> 2 <h3> 3 当前位置:<a

DEV插件下的控件Grid和Gridlookupedit控件的结合使用

创建GridlookupEtid控件 设置其对应属性: 设置属性 this.gridLookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; //配置,用于像文本框那样呀,可自己录入,选择,些处是枚举,可自行设置. valueMember设置列值 view的属性可以点击红色框内的按钮,单独设置,如下图 view里面设置的属性同样适用于gridview 下面将Gri

DataGridView中内置控件常用事件使用心得

checkbox,button,imagebutton使用dataGridView1_CellContentClick private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { tb.Text+=string.Format("\r\n{0},Row:{1},Column:{2}","单元格内容单击!",e.RowIndex,e.ColumnInd

Android 中常见控件的介绍和使用

1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.lang.Object   ? android.view.View   ? android.widget.TextView 直接子类: Button, CheckedTextView, Chronometer, DigitalClock, EditText 间接子类: AutoCompleteTextV

Combobox控件实现汉字按拼音首字母检索

Combobox控件在开发中作为下拉选项的不二之选,用的非常频繁,前几日开发过程中刚好有个需求有用到这个控件,而且客户要求增加下拉选择功能,这个简单,设置控件的自动完成属性后就解决了 this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;//设置自动完成的源  this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;//设置自动完成的的形式 发现场

SPCOMM控件在Delphi串口通信中的应用

SPCOMM控件在Delphi串口通信中的应用 2010-07-08 22:20:31|  分类: 个人日记 |举报 |字号 订阅 2009-03-01 05:35 摘要:利用Delphi开发工业控制系统软件成为越来越多的开发人员的选择,而串口通信是这个过程中必须解决的问题之一.本文在对几种常用串口通信方法分析比较的基础上,着重讨论了Delphi开发环境下利用Spcomm控件实现PC机与单片机之间串口通信的方法,研究了Spcomm串口通信的关键技术问题,并通过一个实例给出了Spcomm控件在De

C#中“类似GridView等控件”的前台显示与后台数据变化之间的关系

最近用dev的treelist,gridcontrol等控件,这些控件显示数据都需要进行DataTable等数据源的绑定,而经理又要求可以随时更改其中的内容,刚开始总是不断的刷新控件.更新控件的数据源(我这里就需要从数据库重新取数据)感觉特别麻烦. 这两天在更改代码时发现了一些我觉的很快捷的地方,在这里提一下: ※这里我的数据源都是以DataTable来做的 1.当从数据库取出数据并赋予datatable之后,接下来只要不再去连接数据库,这时对datatable的所有操作都不会影响数据库内的数据

duilib中加入自己定义控件之后怎么可以在xml文件里配置使用

加入自己定义控件可能有两种不同的情况: 1.  在duilib库中加入的自己定义控件. 2.  在我们的应用程序中自己重写了一个控件. 以下開始解说不同的情况下怎么才干支持在xml文件配置控件: 1.  库中情况 假如自己定义的控件是CGifUI类. 库中情况相对是比較简单的,仅仅需在分析xml文件时候将控件创建出来即可了,所以我找到的函数是CControlUI* CDialogBuilder::_Parse(CMarkupNode* pRoot, CControlUI* pParent, CP