支持模糊查询的LookUpEdit:2.LookUpEditmQney
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Text; using System.Windows.Forms; using DevExpress.Data; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls;
namespace CYYFCheckupMgr.OccupationalDisease.Util { /// <summary> /// LookUpEditmQney /// 模糊筛选的LookUpEdit /// 前提1:Properties.TextEditStyle = TextEditStyles.Standard /// author CYTD Young /// 2016-01-30 01:27:50 /// music: Led Zeppelin - The Wanton Song /// </summary> public class LookUpEditmQney : LookUpEdit { static LookUpEditmQney() { RepositoryItemLookupEditmQney.RegisterCustomEdit(); }
public LookUpEditmQney() { this.Properties.DisplayMember = "FNAME"; this.Properties.ValueMember = "FID"; this.Properties.NullText = "请选择"; ProcessNewValue += LookUpEditmQney_ProcessNewValue; } /// <summary> /// 利用ProcessNewValue事件捕获输入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LookUpEditmQney_ProcessNewValue(object sender, ProcessNewValueEventArgs e) { if (Properties.TextEditStyle == TextEditStyles.Standard) { object val = FindItemFuzzyQuery(e.DisplayValue.ToString()); this.ClosePopup(); this.EditValue = val; } }
public override string EditorTypeName { get { return RepositoryItemLookupEditmQney.EditNamemQney; } }
protected override int FindItem(string text, bool partialSearch, int startIndex) { if (Properties.TextEditStyle != TextEditStyles.Standard) { return base.FindItem(text, partialSearch, startIndex); } else { return -1; } } /// <summary> /// 模糊查询 /// </summary> /// <param name="text"></param> /// <returns></returns> public object FindItemFuzzyQuery(string text) { if (text == null || text.Length == 0) { return -1; } if (!Properties.CaseSensitiveSearch) { text = text.ToLower(); } for (int i = 0; i < Properties.CustomDataAdapter.ItemCount; i++) { for (int j = 0; j < Properties.Columns.VisibleCount; j++) { LookUpColumnInfo col = Properties.Columns[j]; if (!col.Visible) continue; { string itemText = Properties.GetDisplayText(Properties.CustomDataAdapter.GetValueAtIndex(col.FieldName, i));
if (!Properties.CaseSensitiveSearch) { itemText = itemText.ToLower(); } if (text == itemText) { return Properties.CustomDataAdapter.GetKeyValue(i); } } } } return -1; }
public new RepositoryItemLookupEditmQney Properties { get { return base.Properties as RepositoryItemLookupEditmQney; } } } }
根据dev论坛上前辈的问答和代码













