微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

先生/女士现在我的问题是,我想使用下拉列表和文本框过滤页面的网格视图.

我的意思是说我们写一个如下的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按钮.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐