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按钮. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |