我有Datagridview
列,其值为int
。我有值状态的条件,if(status == 1)
然后将文字更改为Active
,否则将文字更改为Not Active
。
非常感谢任何帮助。
private void bindListToGridView(List<Employee> list)
{
// DataTable dt2 = convertListToDataTable(list);
// more codes here.
using (dt2)
{
// more codes here.
dataGridView1.Columns[8].Name = "Status";
dataGridView1.Columns[8].HeaderText = "Status";
dataGridView1.Columns[8].DataPropertyName = "status";
dataGridView1.DataSource = dt2;
}
}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
string columnName = dataGridView1.Columns[e.ColumnIndex].Name;
if (columnName == "Status")
{
int value = (int)dataGridView1.Rows[e.RowIndex].Cells["Status"].Value;
if (value == 1)
{
// set the cell text = Active
}
else
{
// set the cell text = Not Active
}
}
}
答案 0 :(得分:1)
为避免更改基础整数值,您可以将单元格的格式设置为所需的文本:
if (value == 1)
{
dataGridView1.Rows[e.RowIndex].Cells["Status"].Style.Format = "Active";
}
else
{
dataGridView1.Rows[e.RowIndex].Cells["Status"].Style.Format = "Not Active";
}
或者更容易,正如LarsTech指出的那样,只是等同地设定:
e.Value = "Active";
这是有效的,因为我们已经在CellFormatting
事件处理程序中,Value
的{{1}}属性是格式化的转换值。