LookupEdit 支持录入新值 - ProcessNewValue 事件
作者:C/S框架网|www.csframewo  发布日期:2023/07/20 12:26:32
  LookupEdit 支持录入新值 - ProcessNewValue 事件

场景:货号绑定LookupEdit,用户需要输入新的货号。




解决方案


绑定 ProcessNewValue 事件:

C# Code:

rep_goods.ProcessNewValue += rep_goods_ProcessNewValue;

//来源:C/S框架网 | www.csframework.com | QQ:23404761



C# Code:


private void rep_goods_ProcessNewValue(object sender, ProcessNewValueEventArgs e)
{
  
var editor = sender as LookUpEdit;
  
  
//处理空值
  
if (e.DisplayValue.IsEmpty() || e.DisplayValue.ToStringEx() == editor.Properties.NullText)
  {
    
return;
  }
  
  
//数据源添加一条记录
  
var list = editor.Properties.DataSource as List<tb_SOs>;
  list.Add(
new tb_SOs { GoodsNo = e.DisplayValue.ToStringEx() });//这里必须是对应DisplayMember字段
  
  
//不能动态设置下拉窗体的记录数,会抛出异常:get_InnerEditorText()
  
//默认设置最大显示行数=15
  
//if (list.Count < 15) rep_goods.DropDownRows = list.Count;
  

  e.Handled
= true;
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761



给 LooupEdit设置参数,作者测试了几种 SearchMode:


C# Code:


//设置Lookup参数
rep_goods.PopupFilterMode = PopupFilterMode.Contains;
rep_goods.TextEditStyle
= TextEditStyles.Standard;
rep_goods.AcceptEditorTextAsNewValue
= DevExpress.Utils.DefaultBoolean.True;

//rep_goods.SearchMode = SearchMode.AutoSearch;//输入新值被忽略,不能保存新值
//rep_goods.SearchMode = SearchMode.AutoSuggest;//输入新值被忽略,不能保存新值

rep_goods.SearchMode
= SearchMode.AutoFilter;//ok, 输入新值可以保存,并且有自动过滤记录功能
//rep_goods.SearchMode = SearchMode.OnlyInPopup;//ok, 输入新值可以保存,并且有自动过滤记录功能
//rep_goods.SearchMode = SearchMode.AutoComplete;//ok, 输入新值可以保存,但是没有自动过滤记录功能

//来源:C/S框架网 | www.csframework.com | QQ:23404761


录入数据自动添加到数据源





C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇