无法获得索引

时间:2015-09-02 10:51:42

标签: c# asp.net datetime datagrid

我在动态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语句。

3 个答案:

答案 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();
            }