EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用
Posted
技术标签:
【中文标题】EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用【英文标题】:EmptyDataTemplate and EmptyDataText not working in GridView 【发布时间】:2011-02-27 08:04:24 【问题描述】:我似乎无法让EmptyDataTemplate
或EmptyDataText
或GridView
工作。
我正在 de codebehind 中获取 GridView
内容,并使用 DataBind()
附加它们。我尝试将它们设置为null
和空的List
,在这两种情况下,我放入EmptyDataTemplate
或EmptyDataText
的文本都不会显示。
我做错了什么?
编辑(代码 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引起的。启用它们(并且它们似乎默认启用)后,EmptyDataTemplate
和 EmptyDataText
无法按预期工作。
要禁用适配器,请转到 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
ArrayList中EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA的区别