我似乎也无法得到 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友好的控制适配器. 。启用了它们(默认情况下似乎启用了它们), EmptyDataTemplateEmptyDataText 不要按预期工作。

要禁用适配器,请转到 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>

而且不要做我所做的事情 - 尚未设置GridView TreeColor属性,它默认为White,这也是我的背色属性!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top