EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用

Posted

技术标签:

【中文标题】EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用【英文标题】:EmptyDataTemplate and EmptyDataText not working in GridView 【发布时间】:2011-02-27 08:04:24 【问题描述】:

我似乎无法让EmptyDataTemplateEmptyDataTextGridView 工作。

我正在 de codebehind 中获取 GridView 内容,并使用 DataBind() 附加它们。我尝试将它们设置为null 和空的List,在这两种情况下,我放入EmptyDataTemplateEmptyDataText 的文本都不会显示。

我做错了什么?

编辑(代码 sn-p)

这是我的 GridView:

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

我已经尝试了这两个来绑定数据:

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

grid.DataSource = null;
grid.DataBind();

【问题讨论】:

【参考方案1】:

这个问题是由使用所谓的CSS-Friendly Control Adapters引起的。启用它们(并且它们似乎默认启用)后,EmptyDataTemplateEmptyDataText 无法按预期工作。

要禁用适配器,请转到 App_Browsers 文件夹,然后在 CSSFriendlyAdapters.browser 文件中,注释掉以下部分(或与您正在使用的控件相关的部分):

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

最大的问题是样式会消失。

【讨论】:

嗨 Farinha,我添加了相关问题 ***.com/questions/3856890/… - 希望有一个替代解决方案可以保留样式 谢谢,这至少解释了一些事情。 谢谢你,虽然你没有直接帮助我,但你为我节省了很多时间,让我知道正在解决的问题。再次感谢!【参考方案2】:

我遇到了类似的问题,并注意到如果我的数据源为空,我的 DataBind 周围有逻辑忽略数据绑定方法。

【讨论】:

【参考方案3】:

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();

你在做与此不同的事情吗?

【讨论】:

这就是我所拥有的(用代码 sn-ps 编辑了问题)。而不是 GridView 我只是空白。没有 EmptyDataText 的迹象。 @Farinha 当您将列表与某些内容绑定时,GridView 呈现?我想知道您的数据绑定代码是否甚至没有运行... 是的,里面有数据的时候就可以正常渲染了。【参考方案4】:

用户可以清空数据模板吗.....

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

【讨论】:

【参考方案5】:

不要做我所做的 - GridView ForeColor 属性没有设置,它默认为白色,这也是我的 BackColor 属性!

【讨论】:

以上是关于EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

_m_empty 和 _mm_empty 有啥区别?

isset 和 empty 有啥区别?

empty 和 isset的区别和联系

empty 和 isset 区别

ArrayList中EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA的区别

empty函数 和 is_开头的内置函数