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网格视图。但我所说的数据网格视图是指桌面应用程序。