我在动态DataGrid中有一个列,显示日期和时间。我试图只显示日期。
DataRowView drRow = (DataRowView)e.Item.DataItem;
DataGrid dg = sender as DataGrid;
int index = dg.Columns.HeaderIndex("Date");
if (index > 0 && drRow.Row.Table.Columns.Contains("GateIn"))
{
DateTime dt = Convert.ToDateTime(drRow["GateIn"]);
e.Item.Cells[index].Text = dt.ToShortDateString();
}
它没有找到索引,所以它跳出了if语句。
答案 0 :(得分:0)
尝试按列索引搜索索引(例如,第一列为0,第二列为1)。
答案 1 :(得分:0)
您还可以尝试首先从DataGrid中提取DataTable。像:
DataTable dt = DataGrid.DataSource as DataTable
现在您可以检查数据表变量dt。
答案 2 :(得分:0)
问题是headerindex错了。它应该不是Date
int index = dg.Columns.HeaderIndex("Gate In");
if (index > 0 && drRow.Row.Table.Columns.Contains("GateIn"))
{
DateTime dt = Convert.ToDateTime(drRow["GateIn"]);
e.Item.Cells[index].Text = dt.ToShortDateString();
}