diff --git a/smp-angular/src/app/common/search-table/search-table-controller.ts b/smp-angular/src/app/common/search-table/search-table-controller.ts
index 9eece017e263a64835fc3095bf05744180f9f012..e244f55fa92329838f6743f52cea7a15f6203745 100644
--- a/smp-angular/src/app/common/search-table/search-table-controller.ts
+++ b/smp-angular/src/app/common/search-table/search-table-controller.ts
@@ -10,4 +10,11 @@ export interface SearchTableController {
   newRow(): SearchTableEntity;
   newDialog(config?: MatDialogConfig): MatDialogRef<any>;
   dataSaved();
+
+  /**
+   * Returns whether the row expander should be shown as disabled even when the actual row is not fully disabled.
+   *
+   * @param row the row for which the row expander should be disabled or not
+   */
+  isRowExpanderDisabled(row: SearchTableEntity): boolean;
 }
diff --git a/smp-angular/src/app/common/search-table/search-table.component.html b/smp-angular/src/app/common/search-table/search-table.component.html
index 6149a231e6c8a18b9c8ca3b282229d6aeb29aa6d..9c3ccef6d0b54d45e25184f8dfe7587b73220524 100644
--- a/smp-angular/src/app/common/search-table/search-table.component.html
+++ b/smp-angular/src/app/common/search-table/search-table.component.html
@@ -85,8 +85,8 @@
     </ng-template>
 
     <ng-template #rowExpand let-row="row" let-expanded="expanded" let-disabled="disabled" ngx-datatable-cell-template >
-      <span *ngIf="disabled || row.serviceMetadata?.length === 0">()</span>
-      <a *ngIf="!disabled && row.serviceMetadata?.length" class="table-button-expand"
+      <span *ngIf="isRowExpanderDisabled(row, disabled)">()</span>
+      <a *ngIf="!isRowExpanderDisabled(row, disabled)" class="table-button-expand"
         href="javascript:void(0)"
         title="Expand/Collapse Row"
         (click)="toggleExpandRow(row)">{{expanded?'(-)':'(+)'}}
diff --git a/smp-angular/src/app/common/search-table/search-table.component.ts b/smp-angular/src/app/common/search-table/search-table.component.ts
index a0f858eae8ac7256f2b3c969ca46d09c76462996..ea291b279708a56dd2bdb5aa473d8cc7b3287ea9 100644
--- a/smp-angular/src/app/common/search-table/search-table.component.ts
+++ b/smp-angular/src/app/common/search-table/search-table.component.ts
@@ -332,6 +332,10 @@ export class SearchTableComponent implements OnInit {
     return !(!this.submitButtonsEnabled || this.forceRefresh);
   }
 
+  isRowExpanderDisabled(row: any, rowDisabled: boolean): boolean {
+    return rowDisabled || this.searchTableController.isRowExpanderDisabled(row);
+  }
+
   private editSearchTableEntity(rowNumber: number) {
     const row = this.rows[rowNumber];
     const formRef: MatDialogRef<any> = this.searchTableController.newDialog({
diff --git a/smp-angular/src/app/domain/domain-controller.ts b/smp-angular/src/app/domain/domain-controller.ts
index 34843c6ceb53c7233b79311255413b958fa89648..e3fa9eb36ba011f7487b8fe05adffc6e196b903f 100644
--- a/smp-angular/src/app/domain/domain-controller.ts
+++ b/smp-angular/src/app/domain/domain-controller.ts
@@ -61,4 +61,8 @@ export class DomainController implements SearchTableController {
       stringMessage: '',
     }
   }
+
+  isRowExpanderDisabled(row: SearchTableEntity): boolean {
+    return false;
+  }
 }
diff --git a/smp-angular/src/app/service-group-edit/service-group-edit-controller.ts b/smp-angular/src/app/service-group-edit/service-group-edit-controller.ts
index cc104cd21b3b19ae6a88eabef357d59168b536cb..5249d57e8ac0b053c91c3a5460cdd19c898783d9 100644
--- a/smp-angular/src/app/service-group-edit/service-group-edit-controller.ts
+++ b/smp-angular/src/app/service-group-edit/service-group-edit-controller.ts
@@ -8,6 +8,7 @@ import {ServiceGroupMetadataDialogComponent} from "./service-group-metadata-dial
 import {of} from "rxjs/internal/observable/of";
 import {SearchTableValidationResult} from "../common/search-table/search-table-validation-result.model";
 import {SearchTableEntity} from "../common/search-table/search-table-entity.model";
+import {ServiceGroupSearchRo} from "../service-group-search/service-group-search-ro.model";
 
 export class ServiceGroupEditController implements SearchTableController {
 
@@ -84,4 +85,8 @@ export class ServiceGroupEditController implements SearchTableController {
     }
   }
 
+  isRowExpanderDisabled(row: ServiceGroupEditRo): boolean {
+    const serviceGroup = <ServiceGroupEditRo>row;
+    return !(serviceGroup.serviceMetadata && serviceGroup.serviceMetadata.length);
+  }
 }
diff --git a/smp-angular/src/app/service-group-search/service-group-search-controller.ts b/smp-angular/src/app/service-group-search/service-group-search-controller.ts
index 532423d31fd23b8da17d8b37663ed3a1a9fed1be..beb8fbab0dc3bb4908f9f67726775b89b148cd12 100644
--- a/smp-angular/src/app/service-group-search/service-group-search-controller.ts
+++ b/smp-angular/src/app/service-group-search/service-group-search-controller.ts
@@ -4,6 +4,7 @@ import {ServiceGroupSearchRo} from './service-group-search-ro.model';
 import {of} from "rxjs/internal/observable/of";
 import {SearchTableValidationResult} from "../common/search-table/search-table-validation-result.model";
 import {SearchTableEntity} from "../common/search-table/search-table-entity.model";
+import {ServiceGroupEditRo} from "../service-group-edit/service-group-edit-ro.model";
 
 export class ServiceGroupSearchController implements SearchTableController {
 
@@ -39,4 +40,9 @@ export class ServiceGroupSearchController implements SearchTableController {
       stringMessage: message,
     }
   }
+
+  isRowExpanderDisabled(row: SearchTableEntity): boolean {
+    const serviceGroup = <ServiceGroupSearchRo>row;
+    return !(serviceGroup.serviceMetadata && serviceGroup.serviceMetadata.length);
+  }
 }
diff --git a/smp-angular/src/app/user/user-controller.ts b/smp-angular/src/app/user/user-controller.ts
index 05183dd42101b50b83a7ed8b7dc28528d0477fa8..856d2173b9b321680cc7420fc26ab7961aaedb70 100644
--- a/smp-angular/src/app/user/user-controller.ts
+++ b/smp-angular/src/app/user/user-controller.ts
@@ -4,11 +4,8 @@ import {UserDetailsDialogComponent} from './user-details-dialog/user-details-dia
 import {UserRo} from './user-ro.model';
 import {SearchTableEntityStatus} from '../common/search-table/search-table-entity-status.model';
 import {GlobalLookups} from "../common/global-lookups";
-import {CertificateRo} from "./certificate-ro.model";
 import {SearchTableEntity} from "../common/search-table/search-table-entity.model";
-import {of} from "rxjs/internal/observable/of";
 import {SearchTableValidationResult} from "../common/search-table/search-table-validation-result.model";
-import {ServiceMetadataValidationEditRo} from "../service-group-edit/service-group-metadata-dialog/service-metadata-validation-edit-ro.model";
 import {SmpConstants} from "../smp.constants";
 import {HttpClient} from "@angular/common/http";
 
@@ -64,7 +61,8 @@ export class UserController implements SearchTableController {
     }
   }
 
-
-
+  isRowExpanderDisabled(row: SearchTableEntity): boolean {
+    return false;
+  }
 
 }