2
我想从数据库中获取数据从数据库中检索数据表中填充datagridview。通过更改数据表中可用的数据填充datagrid
在填充列和行时,我希望数据在数据表的列中可用。我不想在填充之前在数据表中更改数据,但是我希望在绑定到网格时更改数据。请帮助我,如果这可以使用任何网格属性完成。例如:想要在数据库中填入数据“YES”而不是“Y”的列。
我想从数据库中获取数据从数据库中检索数据表中填充datagridview。通过更改数据表中可用的数据填充datagrid
在填充列和行时,我希望数据在数据表的列中可用。我不想在填充之前在数据表中更改数据,但是我希望在绑定到网格时更改数据。请帮助我,如果这可以使用任何网格属性完成。例如:想要在数据库中填入数据“YES”而不是“Y”的列。
尝试的RowDataBound
protected void GridViewProducts_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row .RowType == DataControlRowType .DataRow)
{
e.Row.Cells[2].Text = (e.Row.Cells[2].Text=="Y" ? "YES" : "NO");
}
}
使用RowDataBound
事件处理程序:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
e.Row.Cells[0].Text = (e.Row.Cells[0].Text == "Y" ? "Yes" : "No");
}
OR
,您可以复制原来的DataTable
使用Copy
方法:
DataTable copyDataTable = dataTable.Copy();
使用Loops
:
foreach (DataRow dr in copyDataTable.Rows)
{
dr["columnName"] = dr["columnName"].ToString().Equals("Y") ? "Yes" : "No";
}
使用Linq
:
copyDataTable.AsEnumerable().Where(c => c["columnName"].ToString().Equals("Y"))
.ToList().ForEach(c => c["columnName"] = "Yes");
copyDataTable.AsEnumerable().Where(c => c["columnName"].ToString().Equals("N"))
.ToList().ForEach(c => c["columnName"] = "No");