|
分類:[C#]
いつも大変勉強させていただいています。
DataGridViewで任意のColumnでFilterをかけることをしたいのですが、一部うまくいきません。
任意のセルをダブルクリックすると、その内容でFilterがかかるようにしたいのです。 現在、ダブルクリック時に以下のように DataGridViewのDataSourceであるBindingSourceのFilterプロパティを設定しています。
xxBindingSource.Filter = xxGridView.Columns[e.ColumnIndex].DataPropertyName.ToString() + "='" + xxGridView[e.ColumnIndex, e.RowIndex].Value.ToString() + "'";
何らかのデータが入っているときは問題なく動作するのですが、 空白のセルで実行するとデータが全く表示されなくなってしまいます(Filter後の表示が0件になります)。 このとき、データがないセルで実行したとき、Filterは「(列名)=''」となっていました。
そこで、手探りながらもデータがない状態のFilterプロパティを以下のようにしてみたところ、 それぞれ以下のように怒られてしまいました。 「(列名)IS Null」→ 'Null' 演算子の後にオペランドがありません。 「(列名)= ""」→ 位置 15 のトークン '"' を変換できません。
期待する動作としては、 空白のセルでFilterをかけると、該当する列の値が空白のものだけ表示されるようなFilterがかかるようにしたいのです。
初歩的な躓きのような気がしますが、アドバイス頂戴できますと幸いです。 どうかよろしくお願いいたしますm(_ _)m
|