Answers:
1. To display only the footer template when grid is empty you have to enter an empty row in Gridview and hide that row.
You should follow these steps:
Dim dt as DataTable
dt.Cols.add("column1")
dt.Cols.add("column2")
dt.Cols.add("column3")
dt.rows.Add("","","")
ViewState("table") = dt
Gridview.DataSource() = TryCast(ViewState("table"),DataTable)
DataBind()
GridView.Rows(0).Visible = False
2. When you click on Add new button. Bind a method on the button click and
do following in your method:
Dim dt AS DataTable = TryCast(ViewState("table"),DataTable)
dt.Rows.Add(YourData1,YourData2,....,YourDataN)
ViewState("table") = dt
GridView.DataSource = TryCast(ViewState("table"),DataTable)
DataBind()