EmptyDataTemplate和EmptyDataText在GridView中不起作用

时间:2010-06-03 13:49:17

标签: asp.net gridview emptydatatext

我似乎无法使EmptyDataTemplate的{​​{1}}或EmptyDataText工作。

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

我做错了什么?

编辑(代码段)

这是我的GridView:

EmptyDataText

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

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

5 个答案:

答案 0 :(得分:5)

此问题是由使用所谓的CSS-Friendly Control Adapters引起的。启用它们后(默认情况下它们似乎已启用),EmptyDataTemplateEmptyDataText无法正常工作。

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