首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储库如何通过值成员进行搜索?

存储库如何通过值成员进行搜索?
EN

Stack Overflow用户
提问于 2018-06-29 11:33:10
回答 2查看 252关注 0票数 0

如何通过搜索值成员将文本设置为repositoryLookupedit?我想要的是在grade列中,当我键入值成员时,它会显示显示成员。E.g当我键入1时,它会将grade列设置为D

这是我的代码

代码语言:javascript
复制
   private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Grade", typeof(string));
        dt.Columns.Add("Value", typeof(int));
        dt.Rows.Add("A", 4);
        dt.Rows.Add("B", 3);
        dt.Rows.Add("C", 2);
        dt.Rows.Add("D", 1);
        repositoryItemLookUpEdit1.DataSource = dt;
        repositoryItemLookUpEdit1.DisplayMember = dt.Columns["Grade"].ToString();
        repositoryItemLookUpEdit1.ValueMember = dt.Columns["Value"].ToString();
        repositoryItemLookUpEdit1.NullText = "";
        repositoryItemLookUpEdit1.PopupFormMinSize = new Size(100, 50);

        DataTable dt2 = new DataTable();
        dt2.Columns.Add("colA", typeof(String));
        dt2.Columns.Add("colB", typeof(String));
        dt2.Columns.Add("colC", typeof(String));
        for(int i =0; i < 15; i++)
        {
            dt2.Rows.Add(i.ToString() + "a", i.ToString() + "b", i.ToString()+"c");
        }
        gridControl1.DataSource = dt2;
        gridView1.BeginUpdate();
        DataColumn col2 = dt2.Columns.Add("Grade", typeof(int));
        GridColumn column2 = gridView1.Columns.AddVisible(col2.ColumnName);
        column2.Caption = col2.Caption;
        column2.Name = col2.ColumnName;
        gridView1.EndUpdate();
        gridView1.Columns["Grade"].ColumnEdit = repositoryItemLookUpEdit1;
    }

我所尝试的是在gridview事件中添加一个代码。但它不会起作用

代码语言:javascript
复制
 private void gridView1_KeyDown(object sender, KeyEventArgs e)
    {            
        if(e.KeyValue == 49)
        {
            gridView1.SetFocusedRowCellValue("Grade", 1);
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2018-06-29 12:06:56

首先,将仓库的搜索模式设置为弹出窗口

代码语言:javascript
复制
repositoryItemLookUpEdit1.SearchMode = DevExpress.XtraEditors.Controls.SearchMode.OnlyInPopup;

然后将代码添加到gridview和repositoryitemlookupedit keydown事件

代码语言:javascript
复制
  private void gridView1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D || e.KeyValue == 49)
        {
            gridView1.SetFocusedRowCellValue("Grade", 1);
        }
        if (e.KeyCode == Keys.NumPad2 || e.KeyCode == Keys.C || e.KeyValue == 50)
        {
            gridView1.SetFocusedRowCellValue("Grade", 2);
        }
        if (e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.B || e.KeyValue == 51)
        {
            gridView1.SetFocusedRowCellValue("Grade", 3);
        }
        if (e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.A || e.KeyValue == 52)
        {
            gridView1.SetFocusedRowCellValue("Grade", 4);
        }
    }
    private void repositoryItemLookUpEdit1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D || e.KeyValue == 49)
        {
            gridView1.SetFocusedRowCellValue("Grade", 1);
        }
        if (e.KeyCode == Keys.NumPad2 || e.KeyCode == Keys.C || e.KeyValue == 50)
        {
            gridView1.SetFocusedRowCellValue("Grade", 2);
        }
        if (e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.B || e.KeyValue == 51)
        {
            gridView1.SetFocusedRowCellValue("Grade", 3);
        }
        if (e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.A || e.KeyValue == 52)
        {
            gridView1.SetFocusedRowCellValue("Grade", 4);
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2018-06-29 20:28:53

您可以尝试使用SearchLookUpEdit而不是简单的LookUpEdit。SearchLookUpEdit提供了多种搜索选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51093884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档