0
データがいっぱいのBindingSourceにDGridが添付されています。私はユーザーがチェックボックスを使用して、特定の列の 'Status'でデータをフィルタリングしようとしています。私は同じ列に4つの異なるデータテキストがあるので、4つのチェックボックスがあります(列は右端にあります)。明らか Picture hereBindingSourceフィルタ - 文字列から単語を削除します。
ユーザチェック/チェックを解除チェックボックスのいずれかが列にそのデータを削除/追加するグリッドにフィルタを設定します。ここで
は、チェックボックスがチェックされたときのために働く私のコードです:彼らがオフのとき
private void chkProgress_CheckedChanged(object sender, EventArgs e)
{
string filter = "";
if (chkProgress.Checked)
{
filter = "Status LIKE '%Progress%'";
if (chkPending.Checked)
{
filter += " Or Status LIKE '%Pending%'";
}
else
{
}
if (chkCompleted.Checked)
{
filter += " Or Status LIKE '%Completed%'";
}
else
{
}
if (chkArchived.Checked)
{
filter += " Or Status LIKE '%Archived%'";
}
else
{
}
}
else
{
}
MessageBox.Show(filter);
bs.Filter = string.Format(filter);
refreshGrid();
}
private void chkCompleted_CheckedChanged(object sender, EventArgs e)
{
string filter = "";
if (chkCompleted.Checked)
{
filter = "Status LIKE '%Completed%'";
if (chkPending.Checked)
{
filter += " Or Status LIKE '%Pending%'";
}
else
{
}
if (chkProgress.Checked)
{
filter += " Or Status LIKE '%Progress%'";
}
else
{
}
if (chkArchived.Checked)
{
filter += " Or Status LIKE '%Archived%'";
}
else
{
}
}
else
{
}
MessageBox.Show(filter);
bs.Filter = string.Format(filter);
refreshGrid();
}
private void chkArchived_CheckedChanged(object sender, EventArgs e)
{
if (chkArchived.Checked)
{
}
else
{
}
}
private void chkPending_CheckedChanged(object sender, EventArgs e)
{
string filter = "";
if (chkPending.Checked)
{
filter = "Status LIKE '%Pending%'";
if(chkProgress.Checked)
{
filter += " Or Status LIKE '%Progress%'";
}
else
{
}
if(chkCompleted.Checked)
{
filter += " Or Status LIKE '%Completed%'";
}
else
{
}
if(chkArchived.Checked)
{
filter += " Or Status LIKE '%Archived%'";
}
else
{
}
}
else
{
}
MessageBox.Show(filter);
bs.Filter = string.Format(filter);
refreshGrid();
}
は、どのように私は、文字列フィルタからデータを削除するに行きますか? - =と似た何か?これについて
乾杯。しかし時には、文字列を何も置き換えないように見えることもあります。これは断続的であり、6回の試みごとに約1回ではない。 – Zack
置換行にブレークポイントを追加し、前後にフィルタ-varが期待どおりに機能しなくなるまで監視してください。 –