EmplyDatatemplate и EmplyDatatext не работает в GridView
-
24-10-2019 - |
Вопрос
Я не могу получить тоже 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!