2012-11-05 42 views
2

我想从数据库中获取数据从数据库中检索数据表中填充datagridview。通过更改数据表中可用的数据填充datagrid

在填充列和行时,我希望数据在数据表的列中可用。我不想在填充之前在数据表中更改数据,但是我希望在绑定到网格时更改数据。请帮助我,如果这可以使用任何网格属性完成。例如:想要在数据库中填入数据“YES”而不是“Y”的列。

回答

0

尝试的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"); 
     } 
    } 
0

使用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");