我有一个Datagrid和一个文本框,用户将在其中引入要过滤的文本,但现在只过滤相同的文本。我的意思是,如果行文本是“ABCDE”并且用户在过滤器文本框“ABCDE”中写入它将出现。如果用户写“ABCD”则不会。我希望过滤器显示所有匹配“ABCD”,例如“XAGABCDA”或“ABCDEGFA”,而不仅仅是“ABCD”。
我有这个简单的代码:
private static SqlConnection con = new SqlConnection("Data Source=10.***.0.***; User Id=sa;Password=***; Initial Catalog=***");
private static SqlCommand myCmdE = new SqlCommand("SELECT * FROM COMPAINES_EXT", con);
private static SqlDataAdapter daE = new SqlDataAdapter(myCmdE);
private static DataTable dtE = new DataTable("COMPAINES_EXT");
IBindingListView blvE = dtE.DefaultView;
public void Load() //this fills the DataGrid "dataGridE"
{
daE.Fill(dtE);
dataGridE.ItemsSource = dtE.DefaultView;
}
private void btn_filtrarE_Click(object sender, RoutedEventArgs e)
{
dataGridE.DataContext = dtE;
blvE.Filter = cmb_FiltrarE.Text + " = '" + txt_filtrarE.Text + "'";
}
//this filters using the column names already written in the combobox cmb_FiltrarE and looks for the text written in the textbox txt_filtrarE
有没有IBindingListView
允许我搜索字母或单词而不是单元格的确切内容?我不想使用循环。
也许有一种不同但有效的方法,它也会很棒。