65.9K
CodeProject is changing. Read more.
Home

DataGridView component with EmptyDataText Property - Windows Form Application

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.89/5 (6 votes)

May 6, 2011

CPOL

1 min read

viewsIcon

39001

downloadIcon

2662

Gets or sets the text to display in the empty data row rendered when a GridView control is bound to a data source that does not contain any records

Introduction

Gets or sets the text to display in the empty data row rendered when a DataGridView control is bound to a data source that does not contain any records.

Background

The empty data row is displayed in a ASP.NET GridView control when the data source that is bound to the control does not contain any records. Use the EmptyDataText property to specify the text to display in the empty data row using EmptyDataRowStyle in ASP.NET. But this is not in Windows Form Application, so I have created a Component for this functionality.

Using the Code

The following screen displays properties of EmptyDataText Grid component.

EDTScreen.png

Binding grid with 0 records:

EDT_without_data.png

After binding grid, it looks like:

EDT_with_data.png

The following code is self explanatory. The following code has been written in Component\DataGrid.cs. In DataGrid.cs, I have Overrides Pint method of DataGridView.

Grid_Component.png

The following code has been written in Form1.cs:

Grid_Example.png

Points of Interest

Now I will try to support automatic label display instead of checking the following lines of code:

//You should use only following 5 lines of code.
            dgEmptyData.DataSource = dt;
            if (dt != null && dt.Rows.Count > 0)
                //Remove text when records exists
                dgEmptyData.EmptyDataText = "";
            else
                //Assign text when no record found
                dgEmptyData.EmptyDataText = txtEmptyText.Text;

History

If you find some issues or bugs with it, just leave a comment or drop me an email. If you make any notes on this, let me know that too so I don't have to redo any of your hard work.
Please provide a "Vote" if this would be helpful.