根据现有值更改数据网格视图中的值

本文关键字:网格 数据网 视图 数据 | 更新日期: 2023-09-27 18:32:23

我正在重新制作我的客户端拥有的应用程序(这意味着我没有创建原始应用程序),其中一个请求是简化 dataGridView 中显示的数据(数据是从现有数据库中提取的)。问题是,在此显示器使用的数据表中,其中一列表示某种产品的使用类型,并由普通数字表示。到目前为止,我的客户不得不从另一份文件中阅读特定数字的含义。现在他希望我用描述性字符串替换数字(他给我发了一个列表,描述了哪个数字指的是哪个描述),但我不允许更改数据库。如何更改该列的内容(仅在我的 dataGridView 中,而不是在数据库中)以显示文本而不是数字?

谢谢

根据现有值更改数据网格视图中的值

执行此操作的常用方法是使用 DataGridViewCellFormatting 事件。

下面是一个简单的示例:

dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.Value == null)
        return;
    string stringValue = (string)e.Value;
    stringValue = stringValue.ToLower();
    if (e.Value == "1")
    {
        e.Value = "string for one";
        e.FormattingApplied = true;
    }
}

事件参数具有 ColumnIndex 属性,可用于确保仅设置正确的列的格式。

需要注意的一点是,每当单元格绘制时都会引发此单元格格式事件,因此您不应在事件处理程序中执行繁重的工作。例如,数据库查找您的值将是一个大错误!而是将其存储在内存字典中。

单元格格式设置事件不会影响基础数据,因此数据源中仍具有整数。

有关此事件的详细信息,请参阅此处的 MSDN。