WindowsFormでのDataGridViewのソートとフィルタのサンプルです。
こちらの2つの記事を参考にさせていただきました。
【C#入門】DataTableの使い方(Select、Sort、Compute、LINQも解説) | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
DataGridコントロールで並び替え順やフィルタを指定するには?:.NET TIPS - @IT
外観はこんな感じ。
コードはこんな感じ。
Formpublic partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}// データセットを作成
DataSet dataSet = new DataSet("タスク管理");// データテーブルを作成
DataTable table = new DataTable("Table");private void Form1_Load(object sender, EventArgs e)
{
// データテーブルに列を追加 table.Columns.Add("カテゴリ");
table.Columns.Add("内容");
table.Columns.Add("優先度");
table.Columns.Add("進捗");// データセットにデータテーブルを追加
dataSet.Tables.Add(table);// テーブルにデータを追加
table.Rows.Add("要望", "レベル", "低", "進行中");
table.Rows.Add("バグ", "固まる", "高", "進行中");
table.Rows.Add("追加", "ボタン", "中", "未着手");
table.Rows.Add("要望", "入力欄", "高", "完了");
table.Rows.Add("バグ", "止まる", "中", "進行中");
table.Rows.Add("バグ", "落ちる", "低", "未着手");
table.Rows.Add("追加", "設定済", "高", "完了");
table.Rows.Add("要望", "最前面", "中", "完了");// データグリッドにテーブルを表示する
this.dgv.DataSource = table;
}// ボタン「Sort」を押す
private void button1_Click(object sender, EventArgs e)
{
// ソートの指定
table.DefaultView.Sort = "カテゴリ ASC";
}// ボタン「Filter」を押す
private void button2_Click(object sender, EventArgs e)
{
// フィルタの指定
table.DefaultView.RowFilter = "進捗 <> '完了'";
}
}
「Sotr」ボタンを押した場合。カテゴリ欄が昇順でソートされました。
「Filter」ボタンを押した場合。進捗が完了のもの以外を表示しました。
ひとまずメモでした!