DataGridView搜索和过滤没有数据源

时间:2015-07-07 21:23:36

标签: c# database datagridview

我有datagridview,我手动填写它从目录中获取文件名。但我想搜索并过滤它。可能吗?我已经尝试找到一些样本,但所有样本都使用数据源搜索。

这是我填写datagridview的代码;

string folderPath = @"C:\Users\TULPAR\Desktop\elektrik projesi\proje\dosyalar\";

fileName.DataSource = new System.IO.DirectoryInfo(folderPath).GetDirectories();
谢谢。

1 个答案:

答案 0 :(得分:1)

可能有更好的方法,但有一种可能性就是只需应用Linq Where语句来刷新DataSource。例如:

private string folderPath = @"C:\Users\TULPAR\Desktop\elektrik projesi\proje\dosyalar\";

public Form1()
{
    this.InitializeComponent();
    this.dataGridView1.DataSource = new System.IO.DirectoryInfo(this.folderPath).GetDirectories();
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
  var src = new System.IO.DirectoryInfo(this.folderPath).GetDirectories().Where(di => di.Name.StartsWith(this.textBox1.Text)).ToArray();
  this.dataGridView1.DataSource = src;
}

在这里,我使用TextBox.TextChanged事件将条目过滤到仅Name开头的TextBox输入的条目。我也可以将我的状况改为di.Name.Contains(...)。巧合的是,当TextBox被清空时,所有目录都显示出来。

您可以使用其他事件,也可以不使用任何事件,具体取决于您希望如何完成此操作。条件也取决于你。但一般的想法是将您的DataSource重置为相同来源的过滤版本。