Вопрос

Я не могу получить тоже EmptyDataTemplate или же EmptyDataText а GridView работать.

Я получаю GridView содержимое в de codebehind и прикрепление их к использованию DataBind(). Анкет Я пытался получить их как null и как пустой List, и в обоих случаях текст, в который я вложил EmptyDataTemplate или же EmptyDataText не отображается.

Что я делаю не так?

РЕДАКТИРОВАТЬ (Фрагмент кода)

Это моя Gridview:

<asp:GridView ID="grid" runat="server" EmptyDataText="EMPTY">
</asp:GridView>

И я попробовал эти два для привязки данных:

grid.DataSource = new List<object>();
grid.DataBind();

grid.DataSource = null;
grid.DataBind();
Это было полезно?

Решение

Эта проблема вызвана использованием так называемого CSS-дружественные адаптеры управления. Анкет С их включенными (и они, кажется, включены по умолчанию), EmptyDataTemplate а также EmptyDataText Не работайте, как ожидалось.

Чтобы отключить адаптеры, идите в App_Browsers папка и в CSSFriendlyAdapters.browser Файл, прокомментируйте следующий раздел (или раздел, связанный с использованием управления):

<adapter controlType="System.Web.UI.WebControls.GridView"
               adapterType="CSSFriendly.GridViewAdapter" />

Большая проблема в том, что стили уйдут.

Другие советы

Я столкнулся с аналогичной проблемой и заметил, что у меня была логика вокруг моей базы данных, чтобы игнорировать метод данных, если мой источник данных был пуст.

А EmptyDataTemplate будет переопределять любое EmptyDataText, так что может быть так, что вы как -то определили шаблон, что мешает вам видеть EmptyDataText.

Если вы связываете пустой список с GridView, он должен отобразить EmptyDataText, пока у вас нет конфликта EmptyDataTemplate, например

<%-- GridTest.ascx --%>
<asp:GridView ID="Grid" runat="server" EmptyDataText="No Data!" />

// GridTest.ascx.cs
Grid.DataSource = new List<object>();
Grid.DataBind();

Вы делаете что -то другое, чем это?

Может ли пользователь пустой шаблон данных .....

    <Columns>
             ............
             ............
             ............
    <Columns>
<EmptyDataTemplate>
        <asp:Label ID="lblEmptyTxt" runat="server" Text="No Data"></asp:Label>
      </EmptyDataTemplate>
                        </asp:GridView>

И не делайте то, что я делал - свойство ForeColor Gridview не было установлено, и по умолчанию белоснежного, что также было моим собственностью Backcolor!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top