加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用下拉列表和文本框过滤器进行网格视图搜索?

发布时间:2020-12-15 21:33:37 所属栏目:百科 来源:网络整理
导读:先生/女士现在我的问题是,我想使用下拉列表和文本框过滤页面的网格视图. 我的意思是说我们写一个如下的SQL: Select * from student where roll_no = 101; 对, 现在我应该通过下拉列表选择列(上面语句中的roll_no),并且文本框应输入值(上述语句中的101). 简
先生/女士现在我的问题是,我想使用下拉列表和文本框过滤页面的网格视图.

我的意思是说我们写一个如下的SQL:

Select  * from student where roll_no = 101;

对,

现在我应该通过下拉列表选择列(上面语句中的roll_no),并且文本框应输入值(上述语句中的101).

简而言之,我想使用下拉列表填充我的网格视图,并通过单击按钮填充文本框的值.

为了开发我正在使用数据集和表适配器.

拜托,帮帮我吧..

解决方法

我使用下拉列表(组合框)和文本框以下面的方式过滤我的DataGridView,我认为这就是你要找的东西.

首先,填充DataGridView.您声明您正在使用DataSet和TableAdapters.我猜你正在使用BindingSource将你的数据绑定到DataGridView.如果是这种情况,那么您可以通过BindingSource过滤数据.

我的设置类似于:

我的组合框包含我想在我的过滤器中使用的字段,文本框是我将要应用的值.组合框中的值是用户友好的名称,因此他们将了解它们正在过滤哪个字段.

应用过滤器的代码是:

private void ApplyFilter()
{
     var filterEntered = FilterTextBox.Text.Trim().ToLower();

     MyBindingSource.RemoveFilter(); // remove previous filter

     string filterText = string.Empty;
     string filterComboText = string.Empty;

     switch (FilterComboBox.Text)
     {
         case "Profile":
            filterComboText = "TSProfile"; // column name in the query
            break;
         case "User Id":
            filterComboText = "TSUserId";
            break;
         case "Center":
            filterComboText = "TSCenter";
            break;
         case "Prefix":
            filterComboText = "TSPrefix";
            break;
     }

     filterComboText = filterComboText + " = '";

     filterText += (string.IsNullOrEmpty(filterComboText) ? string.Empty : filterComboText);
     filterText += (!string.IsNullOrEmpty(filterText) && !string.IsNullOrEmpty(filterEntered) ? filterEntered + "'" : string.Empty);

     MyBindingSource.Filter = filterText;
}

基本上它正在做的是获取组合框的文本名称,然后获取文本框中的文本并将Filter应用于BindingSource.

MSDN有一篇关于过滤的文章,其中包含完整的示例代码.

我建议的一件事是为用户提供一种轻松删除过滤器的方法,我使用Remove Filter按钮.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读