I can't seem to get either EmptyDataTemplate
or EmptyDataText
of a GridView
to work.
I'm fetching the GridView
contents in de codebehind and attaching them with using DataBind()
. I've tried having them as null
and as an empty List
, and in both cases the text I put into EmptyDataTemplate
or EmptyDataText
is not displayed.
What am I doing wrong?
EDIT (Code snippet)
This is my GridView:
<asp:GridView ID="grid" runat="server" EmptyDataText="EMPTY">
</asp:GridView>
And I've tried these two for binding the data:
grid.DataSource = new List<object>();
grid.DataBind();
grid.DataSource = null;
grid.DataBind();
This problem is caused by using the so-called CSS-Friendly Control Adapters. With them enabled (and they seem to be enabled by default), EmptyDataTemplate
and EmptyDataText
don't work as expected.
To disable the adapters, go to the App_Browsers
folder, and in the CSSFriendlyAdapters.browser
file, comment out the following section (or the section related to the control you're using):
<adapter controlType="System.Web.UI.WebControls.GridView"
adapterType="CSSFriendly.GridViewAdapter" />
The big problem is the styles will go away.
I ran into a similar problem and noticed I had logic around my DataBind to ignore the databinding method if my datasource was empty.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With