EmptyDataTemplate и EmptyDataText, не работающий в GridView

Я, может казаться, не добираюсь также EmptyDataTemplate или EmptyDataText из a 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();
5
задан Farinha 9 June 2010 в 07:54
поделиться

2 ответа

Эта проблема вызвана использованием так называемых CSS-Friendly Control Adapters. Если они включены (а они, похоже, включены по умолчанию), EmptyDataTemplate и EmptyDataText работают не так, как ожидалось.

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

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

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

5
ответ дан 13 December 2019 в 05:31
поделиться

Шаблон 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();

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

2
ответ дан 13 December 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: