1

我已经使用RowFilter. 现在我需要将行包含的这些文本替换为其他一些文本。

我怎么做?

private void button7_Click_3(object sender, EventArgs e)
{
    string filterBy;
    filterBy = "Stringtext Like '%" + textBox6.Text + "%'";
    ((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = filterBy;
}

有任何想法吗?

4

1 回答 1

1

dataGridView1下面的方法检索作为 a的数据源DataTable并将其克隆到一个新的DataTable. 然后,它解析Rows原始的集合,DataTable将查找的值(由 给出textBox6.Text)替换为列_TEST_中的值,Stringtext并将修改后的行添加到克隆的数据表中。最后,它将网格的数据源分配给修改后的表。

private void button7_Click_3(object sender, EventArgs e)
{
    var original = ((DataTable)dataGridView1.DataSource);
    var clone = original.Clone();
    var ordinal = original.Columns["Stringtext"].Ordinal;
    for (int i = 0; i < original.Rows.Count; i++)
    {
        var values = original.Rows[i].ItemArray;
        values[ordinal] = values[ordinal].ToString()
            .Replace(textBox6.Text, "_TEST_");
        clone.Rows.Add(values);
    }
    dataGridView1.DataSource = clone;
}
于 2013-07-23T08:20:18.550 回答