C# 如何设置数据gridview的默认显示值?

C# 如何设置数据gridview的默认显示值?,c#,datagridview,C#,Datagridview,我使用的是数据网格视图。 比如说,我有一个对象列表 class abc{ public int i{get;set;} public long b{get;set;} } //in Form Load List<abc> objList = new List(); listpopulate(); // populate the list. datgridvew.dtasource = objList; abc类{ 公共整数i{get;set;} 公共长b{ge

我使用的是数据网格视图。 比如说,我有一个对象列表

class abc{
   public int i{get;set;}
   public long b{get;set;}
 }
 //in Form Load
 List<abc> objList = new List();
 listpopulate(); // populate the list.
 datgridvew.dtasource = objList;
abc类{
公共整数i{get;set;}
公共长b{get;set;}
}
//形式荷载
列表对象列表=新列表();
listpopulate();//填充列表。
datgridvew.dtasource=objList;
我想显示“-”,其中
Objabc.I值=0
并想在
Objabc.b=1000的地方显示“Good”
我尝试了单元格默认格式,但没有成功


你能帮帮我吗

您可以为此使用事件,例如:

或者使用如下事件:

private void DataGridView1_CellFormatting(object sender,
    DataGridViewCellFormattingEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;
    if (dgv.Columns[e.ColumnIndex].Name == "i" &&
        e.RowIndex >= 0 &&
        dgv["i", e.RowIndex].Value is int) &&
        (((int)dgv["i", e.RowIndex].Value) == 0)
        {
           e.Value = "-";
           e.FormattingApplied = true;           
        }
    }
    else if (dgv.Columns[e.ColumnIndex].Name == "b" &&
        e.RowIndex >= 0 &&
        dgv["b", e.RowIndex].Value is int) &&
        (((int)dgv["b", e.RowIndex].Value) == 1000)
        {
           e.Value = "Good";
           e.FormattingApplied = true;           
        }
    }
}

在这里,您可以在客户端上使用
Jquery

  $(document).ready(function () {
             $(".GRIDVIEWCLASSNAME").find("td").each(function () {
                    if ($(this).text() == "0")
                    {
                        $(this).html("-");
                    }
                     if ($(this).text() == "1000")
                    {
                        $(this).html("Good");
                    }
                });
        });

如果Objabc.i value=0和Objabc.b=1000呢?正如我前面提到的,我想在i列中显示“-”如果i value=0,这个值,如果b=1000,这个值和“Good”是指“-”,在b列中显示“Good”,或者说是指同一列?它们是不同的。让我们在这里说“我”是指年龄栏。b可能是b薪水。如果数据网格视图中的“i”=0,我不能显示age=0,但我想显示“-”,而不是用in-for循环扫描网格视图的所有单元格。在每个单元格值更改事件中。我不能承担这个费用。如果我用grid view绑定10000行或更多行怎么办?您可以检查DataGridViewImageCell的ColumnIndex并仅对特定列使用该逻辑检查更新,这不会像您想象的那样花费您很多,该逻辑只适用于特定列。!您的解决方案可能适用于asp.net网格视图。但我所说的数据网格视图是指桌面应用程序。