zoukankan      html  css  js  c++  java
  • DevExpress 如何向lookUpEditor中添加新值

    How to Use the ProcessNewValue Event of a LookUp Editor

    Tags:

    Alex Klim (DevExpress)16 years ago

    • How to Use the ProcessNewValue Event of a LookUp Editor

    Leave a Comment

    1 Solution

    Alex Klim (DevExpress)16 years ago

    ​​​​​​​

    The LookUp editor allows a user to enter values which cannot be found in the lookup list. A programmer should handle this situation, otherwise a new value is lost. The LookUp editor provides a ProcessNewValue event for this.

    First of all, you should set the SearchMode property to OnlyInPopup and TextEditStyle to Standard to enable free text entry.

    There are two common approaches for handling the ProcessNewValue event:
    1. Immediately insert the new record in the lookup table and generate a new ID for it.
    2. Display a dialog, where a user can set values for a new data row.

    Below are two code snippets which demonstrate the implementation of these approaches.

    
     

    [C#]Open in popup window

    // solution 1 
    
    private void LookUpEdit1_ProcessNewValue(object sender, DevExpress.XtraEditors.Controls.ProcessNewValueEventArgs e) {
    
       DataRow Row;
    
       RepositoryItemLookUpEdit Edit;
    
       Edit = ((LookUpEdit)sender).Properties;
    
    
    
       if(e.DisplayValue == null || Edit.NullText.Equals(e.DisplayValue) || string.Empty.Equals(e.DisplayValue))
    
           return;
    
    
    
       Row = LookupTable.NewRow();
    
       Row["Name"] = e.DisplayValue;
    
       LookupTable.Rows.Add(Row);
    
       
    
       e.Handled = true;
    
    }
    
    
    
    // solution 2 
    
    private void LookUpEdit1_ProcessNewValue(object sender, DevExpress.XtraEditors.Controls.ProcessNewValueEventArgs e) {
    
       DataRow Row;
    
       RepositoryItemLookUpEdit Edit;
    
       Edit = ((LookUpEdit)sender).Properties;
    
    
    
       if(e.DisplayValue == null || Edit.NullText.Equals(e.DisplayValue) || string.Empty.Equals(e.DisplayValue))
    
           return;
    
           
    
       using(Form2 f = new Form2()) {
    
           f.ItemID = "(Auto Number)";
    
           f.ItemName = e.DisplayValue.ToString();
    
           if(f.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) {
    
               e.DisplayValue = f.ItemName;
    
               Row = LookupTable.NewRow();
    
               Row["Name"] = f.ItemName;
    
               LookupTable.Rows.Add(Row);
    
           }
    
       }
    
           
    
       e.Handled = true;
    
    }
  • 相关阅读:
    栈的压入、弹出序列
    HM代码分析--TAppEncoder
    HM代码分析--TAppDecoder
    包含min函数的栈
    GMOJ 6841. 【2020.11.5提高组模拟】淘淘蓝蓝之树 林
    【2020.11.5提高组模拟】总结
    dsu on tree学习总结 (树上启发式合并)
    GMOJ 6847. 【2020.11.03提高组模拟】通往强者之路
    2020.11.03【NOIP提高A组】模拟
    【2020.11.02提高组模拟】总结
  • 原文地址:https://www.cnblogs.com/grj001/p/12225304.html
Copyright © 2011-2022 走看看