5

我似乎EmptyDataTemplate无法EmptyDataText工作GridView

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

我究竟做错了什么?

编辑(代码片段)

这是我的 GridView:

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

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

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

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

5 回答 5

5

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

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

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

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

于 2010-06-09T13:13:48.273 回答
4

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

于 2011-06-03T19:53:51.143 回答
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();

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

于 2010-06-03T14:01:57.100 回答
1

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

    <Columns>
             ............
             ............
             ............
    <Columns>
<EmptyDataTemplate>
        <asp:Label ID="lblEmptyTxt" runat="server" Text="No Data"></asp:Label>
      </EmptyDataTemplate>
                        </asp:GridView>
于 2012-12-12T10:07:52.753 回答
0

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

于 2012-02-12T16:27:59.583 回答