修选型筛选清除不生效:按钮状态机——筛选生效中(显示清除)点击无条件清 RowFilter 并复位按钮,不再被残留关键字带偏;空关键字路径保留双保险

This commit is contained in:
dqb-dev
2026-10-02 11:20:26 +08:00
parent 21ffc2227b
commit c24e84e355
@@ -28,17 +28,27 @@ namespace 成套报价软件
}
/// <summary>筛选/清除:对汇总表(advancedDataGridView1)的 元件名称/规格/图纸规格
/// 三列任一包含关键字即显示(RowFilter 过滤视图,不动数据源,刷新加载自动重置)。</summary>
/// 三列任一包含关键字即显示(RowFilter 过滤视图,不动数据源,刷新加载自动重置)。
/// 按钮状态机:Text="清除"(筛选生效中)→点击=无条件清除;Text="筛选"→按关键字筛选,空关键字=清除。</summary>
private void button1_筛选_Click(object sender, EventArgs e)
{
try
{
var dt = advancedDataGridView1.DataSource as System.Data.DataTable;
if (dt == null) return; // 尚未加载数据
// ★ 筛选生效中(按钮显示"清除"):点击即无条件清除(关键字保留在框里便于改词再筛)
if (button1.Text == "清除")
{
dt.DefaultView.RowFilter = "";
button1.Text = "筛选";
return;
}
string kw = (comboBox1.Text ?? "").Trim();
if (kw.Length == 0)
{
dt.DefaultView.RowFilter = "";
dt.DefaultView.RowFilter = ""; // 空关键字 = 清除(双保险路径)
button1.Text = "筛选";
return;
}