Don't directly bind using Eval in design view instead of that You can bing data in RowDataBound event
So in RowDataBound event find label from Grid and also DataBind column from data source
If column available then bind it with label as leave it as it is.
If you are using DataTable for DataSource then you can use below code to check whether given column/property is exists or not in RowDataBound event.
var dataRow = (DataRowView)e.Row.DataItem;
var columnNameToCheck = "Id";
var check = dataRow.Row.Table.Columns.Cast<DataColumn>().Any(x => x.ColumnName.Equals(columnNameToCheck, StringComparison.InvariantCultureIgnoreCase));
if (check)
{
}
Here, columnNameToCheck is variable to hold property name to check whether it is exists in data source or not.