Является ли DataRow.NewRow () недостаточной в качестве единственной строки в DataTable? Я ожидаю, что это сработает, но это не так. Это ближе к концу моего Page_Load внутри моего блока If (! Postback). gridCPCP GridView
DataTable dt = new DataTable();
dt.Columns.Add("ID", int.MinValue.GetType());
dt.Columns.Add("Code", string.Empty.GetType());
dt.Columns.Add("Date", DateTime.MinValue.GetType());
dt.Columns.Add("Date2", DateTime.MinValue.GetType());
dt.Columns.Add("Filename", string.Empty.GetType());
//code to add rows
if (dt.Rows.Count > 0)
{
gridCPCP.DataSource = dt;
gridCPCP.DataBind();
}
else
{
dt.Rows.Add(dt.NewRow());
gridCPCP.DataSource = dt;
gridCPCP.DataBind(); //EXCEPTION
int TotalColumns = gridCPCP.Rows[0].Cells.Count;
gridCPCP.Rows[0].Cells.Clear();
gridCPCP.Rows[0].Cells.Add(new TableCell());
gridCPCP.Rows[0].Cells[0].ColumnSpan = TotalColumns;
gridCPCP.Rows[0].Cells[0].Text = "No Record Found";
}
Исключение создает gridCPCP.DataBind()
и только тогда, когда выполнение достигает блока else
. Если были строки, добавленные выше через dt.Rows.Add(new object[] { ... }
, переплет работает.
System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length