emptyDatateMplate和emptyDatatext在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>
而且不要做我所做的事情 - 尚未设置GridView TreeColor属性,它默认为White,这也是我的背色属性!
不隶属于 StackOverflow