asp.net gridview showheader, когда работает только в обратной передаче - PullRequest
1 голос
/ 02 апреля 2012

Я понял, что ShowHeaderWhenEmpty работает только в PostBacks.Есть ли способ заставить его работать после загрузки страницы?

<asp:GridView ID="GridView1"... ShowHeaderWhenEmpty="true"... >
<EmptyDataTemplate>
<asp:Label ID="Label1" runat="server" Text="No records found"></asp:Label>
</EmptyDataTemplate>

Когда у меня нет информации для отображения, вышеупомянутое сообщение появляется только в PostBacks, нет, когда страница загружена.

1 Ответ

6 голосов
/ 03 апреля 2012

Примечание. В этом ответе предполагается (в зависимости от вашего вопроса), что вы привязываете GridView к источнику данных в PostBack, а не в течение Page_Load. Пожалуйста, поправьте меня, если я ошибаюсь.

Содержимое <EmptyDataTemplate> отображается только после того, как ваша GridView была привязана к данным. Если вы привязываете данные только к Postback (основываясь на некотором взаимодействии с пользователем), то одним из способов решения этой проблемы будет привязка вашего GridView к пустому (искусственному) набору данных, именно так будет отображаться <EmptyDataTemplate>.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack
        Dim table As New DataTable
        GridView1.DataSource = table
        GridView1.DataBind()
    End If
End Sub

Из статьи MSDN на шаблоне EmptyDataTemplate (выделено мной):

Пустая строка данных отображается в элементе управления GridView, когда данные Источник, связанный с элементом управления , не содержит записей.

Если к элементу управления не привязан источник данных, это свойство еще не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...