为什么从Gridview到datatable的转换失败?

时间:2015-03-20 12:33:07

标签: c# asp.net gridview

我一直在尝试将GRIDVIEW转换为DataTable,但它没有给我数据,它只给了我GridView的HEADERS而不是它里面的数据。为什么?我在gridview中使用模板字段

从事件中调用它:

 DataTable dt = GetDataTable(GridView DenominationsWiseTransactions);

转换功能:

DataTable GetDataTable(GridView dtg)
    {
        DataTable dt = new DataTable();

        // add the columns to the datatable            
        if (dtg.HeaderRow != null)
        {

            for (int i = 0; i < dtg.HeaderRow.Cells.Count; i++)
            {
                dt.Columns.Add(dtg.HeaderRow.Cells[i].Text);
            }
        }

        //  add each of the data rows to the table
        foreach (GridViewRow row in dtg.Rows)
        {
            DataRow dr;
            dr = dt.NewRow();

            for (int i = 0; i < row.Cells.Count; i++)
            {
                dr[i] = row.Cells[i].Text.Replace(" ", "");
            }
            dt.Rows.Add(dr);
        }
        return dt;
    }

1 个答案:

答案 0 :(得分:0)

因此,当您循环遍历数据网格中的行时,它将包含标题,行和页脚。

要查看您需要执行以下操作的数据行:

if (e.Row.RowType == DataControlRowType.DataRow)
        { //convert that row }

您的转换行可能需要一些工作,但至少您现在只需要关注数据行。