Я прочитал много сообщений в Интернете об этом, и в конце я придумал свое собственное решение, которое отвечает моим потребностям и, надеюсь, потребностям других, включая этот вопрос.
Необходимость показывать верхний / нижний колонтитулы может быть из-за
1) Я хочу, чтобы пользователь видел структуру сетки, и
2) Я хочу использовать нижний колонтитул для добавления новых данных в таблицу.
Поэтому просто показывать «нет данных» недостаточно.
Итак, мое решение - проверить, доступны ли данные. Если нет, то создайте структуру источника данных и заполните обязательные поля одной строки значениями по умолчанию. Это важно, потому что, если вы связываете источник данных с сеткой, когда такие поля, как логические и даты пустые, у вас будут ошибки DBNull. Затем свяжите этот новый источник данных с сеткой. затем скройте строку в этой последовательности.
Protected Sub BindGrid()
con = New SqlConnection("mainLocal")
Dim da As New SqlDataAdapter("SELECT * FROM Test", con)
Dim dt As New DataTable()
da.Fill(dt)
dim rows as integer = dt.Rows.Count
If rows = 0 Then
Dim dr As DataRow = Nothing
dr = dt.NewRow()
dr("isActive") = False
dr("Dated") = Date.Now()
dt.Rows.Add(dr)
End If
Me.TestGridView.DataSource = dt
Me.TestGridView.DataBind()
If rows = 0 Then Me.TestGridView.Rows(0).Visible = False
End Sub
Наверное, намного проще, короче, аккуратнее!