Jul 28, 2018 11:25 AM|mgebhard|LINK
The AddDefaultFirstRecord method clearly creates an empty initial row and adds the DataTable, with the empty row, to ViewState. Again, the first posted code skips the first record found in ViewState.
Frankly, the code does not make logical sense and seems over engineered. The GridView has an empty data template so there is no reason to craft a custom empty data template. ViewState handles the GridView state so there is not reason to store a DataTable
I recommend that you go through the Getting Started with Web Forms tutorials to get a basic understanding of Web Forms. I also recommend that you read the GridView API documentation because you are reinventing the wheel. Lastly, learn how to use the Visual