Я делал это на предыдущей работе, но так как вы можете добавлять строки, я всегда отображал их в строке нижнего колонтитула. Чтобы отобразить сетку, я связал пустую строку того типа, который обычно связан
dim row as Datarow = table.NewRow()
table.AddRow(row)
gridView.DataSource = table
gridView.Databind()
тогда у него есть все столбцы, а затем вам нужно. Вы можете получить доступ к нижнему колонтитулу, потянув это:
'this will get the footer no matter how many rows there are in the grid.
Dim footer as Control = gridView.Controls(0).Controls(gridView.Controls(0).Controls.Count -1)
затем, чтобы получить доступ к любому из элементов управления в нижнем колонтитуле, вы должны выполнить:
Dim cntl as Control = footer.FindControl(<Insert Control Name Here>)
Я предполагаю, что вы сможете сделать:
footer.Visible = false
чтобы сделать строку нижнего колонтитула невидимой.
Надеюсь, это поможет!
Редактировать Я только что понял, что вы сказали. Я в основном удаляю строку, когда добавляю новую, но для этого нужно проверить, есть ли другие строки, и, если есть, проверить, есть ли в ней значения.
Чтобы удалить фиктивную строку, сделайте что-то вроде этого:
If mTable.Rows.Count = 1 AndAlso mTable.Rows(0)(<first column to check for null value>) Is DBNull.Value AndAlso mTable.Rows(0)(<second column>) Is DBNull.Value AndAlso mTable.Rows(0)(<thrid column>) Is DBNull.Value Then
mTable.Rows.Remove(mTable.Rows(0))
End If
mTable.Rows.Add(row)
gridView.Datasource = mTable
gridView.Databind()