我似乎无法使EmptyDataTemplate
的{{1}}或EmptyDataText
工作。
我在de codebehind中获取GridView
内容并使用GridView
附加它们。我尝试将它们设为DataBind()
和空null
,并且在两种情况下都不会显示我放入List
或EmptyDataTemplate
的文字。
我做错了什么?
编辑(代码段)
这是我的GridView:
EmptyDataText
我已经尝试过这两个来绑定数据:
<asp:GridView ID="grid" runat="server" EmptyDataText="EMPTY">
</asp:GridView>
答案 0 :(得分:5)
此问题是由使用所谓的CSS-Friendly Control Adapters引起的。启用它们后(默认情况下它们似乎已启用),EmptyDataTemplate
和EmptyDataText
无法正常工作。
要禁用适配器,请转到App_Browsers
文件夹,然后在CSSFriendlyAdapters.browser
文件中注释掉以下部分(或与您正在使用的控件相关的部分):
<adapter controlType="System.Web.UI.WebControls.GridView"
adapterType="CSSFriendly.GridViewAdapter" />
最大的问题是风格会消失。
答案 1 :(得分:4)
我遇到了类似的问题,并注意到我的DataBind周围有逻辑,如果我的数据源为空,则忽略数据绑定方法。
答案 2 :(得分:2)
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();
你做的不一样吗?
答案 3 :(得分:1)
用户可以清空数据模板.....
<Columns>
............
............
............
<Columns>
<EmptyDataTemplate>
<asp:Label ID="lblEmptyTxt" runat="server" Text="No Data"></asp:Label>
</EmptyDataTemplate>
</asp:GridView>
答案 4 :(得分:0)
并且不要做我做的 - GridView ForeColor属性没有设置,它默认为白色,这也是我的BackColor属性!