Für Auswahllisten stehen die Standarddialoge zur Verfügung.

  • Checkbox-Liste (“BA.Core.Dialogs.CheckboxList”)
  • Radiobutton-Liste (“BA.Core.Dialogs.RadioList”)
  • Combobox (“BA.Core.Dialogs.Combobox”)
    Für Auswahllisten und für eigenen Daten Provider
  • Listbox (“BA.Core.Dialogs.Listbox”)

Parameter

Folgende Parameter gibt es für das Aufrufen von diesen Dialogen:

  • DialogTitle Der Titel den der Dialog haben soll.
  • Caption Optional: Das Label welches vor dem Masken-Steuerelement gerendert werden soll.
    Wenn keine Caption angegeben wird, nutzt das Control den ganzen Platz aus.
  • ModelType Name des Models / Auswahlliste den dieser Dialog verwenden soll. Oder die Guid der Auswahlliste. Dazu später mehr.
    Hinweis: Guid der Auswahlliste geht nicht bei der Combobox mit Data Provider (da diese ja keine Auswahlliste anzeigt).
  • IsEnumDialog Optional: Soll die Combobox eine Auswahlliste darstellen oder eine selbst definierte? (Default: True)
    Nur bei Combobox-Dialog
  • DataProvider Die Guid des Data Providers welcher verwendet werden soll.
    Nur bei Combobox notwendig, wenn IsEnumDialog: false ist.
  • RepeatColumns Optional: Über wie viele Spalten sollen sich die Elemente aufteilen (Default: 2)
    Nur bei Checkbox-Liste und der Radiobutton-Liste
  • RepeatDirection Optional: Soll die Aufteilung Horizontal (Default) oder Vertikal erfolgen.
    Nur bei Checkbox-Liste und der Radiobutton-Liste
  • AddButtons Optional: Zusätzliche Buttons zum Dialog hinzufügen
    Siehe Hinweis für zusätzliche Buttons
  • Preselected Optional: Liste mit Elementen (Guids der Auswahllistenwerte) die beim Öffnen des Dialoges bereits vorselektiert sein sollen.
    Nur bei Auswahlisten möglich, nicht bei Combobox mit Data Provider.

Wenn mit AddButtons zusätzliche Buttons hinzugefügt werden sollen gibt es hierfür zwei weitere Parameter:

  • Title Der Button-Titel
  • Method Der vollständige Name der JavaScript Methode die aufgerufen werden soll.
    Name mit Pfad, z. B. BA.Ui.Dialog.DialogManager.DialogDefaultCancel

Die zusätzlichen Buttons werden dabei als Array übergeben:

AddButtons: [{Title: "MyButton1", Method: "BA.Ui.Dialog.DialogManager.DialogDefaultCancel"}, {Title: "My other Button", Method:  "BA.Ui.Dialog.DialogTools.DefaultComboboxControlCallback"}]

Beispiele

Hier werden Beispielaufrufe für jeden Dialog mit den entsprechenden Pflichtparametern gezeigt:

Radiobutton-Liste

BA.Ui.Dialog.DialogManager.OpenDialog(
     "BA.Core.Dialogs.RadioList", 
     { DialogTitle: "Enum RadioList", Caption: "Bitte wählen", ModelType:"EnumEmailAddressType", Preselected: ["12FE59CA-196D-42D6-A9B1-3D31DD16F5E7"], AddButtons: [{Title: "MyButton1", Method: "BA.Ui.Dialog.DialogManager.DialogDefaultCancel"}, {Title: "My other Button", Method: "BA.Ui.Dialog.DialogTools.DefaultComboboxControlCallback"}] }, 
     {custom: „data“},  
     function(result, addData) { console.log(result); console.log(addData); }
);

Alternativ mit Master Guid der Auswahlliste anstelle des Namens

BA.Ui.Dialog.DialogManager.OpenDialog(
     "BA.Core.Dialogs.RadioList", 
     { DialogTitle: "Enum RadioList", Caption: "Bitte wählen", ModelType:" 6B1CFDAF-C222-45FE-932F-CEE5B7E89FA4"},
     {custom: „data“},  
     function(result, addData) { console.log(result); console.log(addData); }
);

Checkbox-Liste

BA.Ui.Dialog.DialogManager.OpenDialog(
     "BA.Core.Dialogs.CheckboxList", 
     { DialogTitle: "Enum CheckboxList", Caption: "Bitte wählen", ModelType: "EnumEmailAddressType" }, 
     {custom: „data“}, 
     function(result, addData) { console.log(result); console.log(addData); }
);

Listbox

BA.Ui.Dialog.DialogManager.OpenDialog(
     "BA.Core.Dialogs.Listbox", 
     { DialogTitle: "Enum Listbox", Caption: "Bitte wählen", ModelType: "EnumEmailAddressType", Preselected: ["12FE59CA-196D-42D6-A9B1-3D31DD16F5E7"] }, 
     {custom: „data“}, 
     function(result, addData) { console.log(result); console.log(addData); }
);

Combobox

BA.Ui.Dialog.DialogManager.OpenDialog(
     "BA.Core.Dialogs.Combobox", 
     { DialogTitle: "Enum Combobox", Caption: "Bitte wählen", ModelType: "EnumEmailAddressType", Preselected: ["12FE59CA-196D-42D6-A9B1-3D31DD16F5E7"] },
     {custom: "data"}, 
     function(result, addData) { console.log(result); console.log(addData); }
);

Combobox (Mit eigenem Daten Provider)

BA.Ui.Dialog.DialogManager.OpenDialog(
     "BA.Core.Dialogs.Combobox", 
     { DialogTitle: "Combobox", Caption: "Bitte wählen", ModelType: "DPStandardUserProfileList", IsEnumDialog: false, "DataProvider": "76739A3A-67C5-44AD-A3CF-B1F573E8F3D1"}, 
     {custom: "Data"}, 
     function(result, addData) { console.log(result); console.log(addData); }
);

Rückgabewert

Der Rückgabewert, also der oder die selektierten Einträge (genauer gesagt die Guids davon), werden als Data im DialogResultModel zurückgegeben.

In der Browserkonsole sieht das dann z. B. wie folgt aus:

Object { 
     ButtonId: "okButton", 
     Data: (2) […]
          0: "12fe59ca-196d-42d6-a9b1-3d31dd16f5e7"
          1: "54028ce3-294d-4b41-825e-c0ecdee0ff8a"
          length: 2
     InvalidFields: [], 
     FieldMessages: [], 
     Message: "", 
     MessageType: 0, 
     Action: "BA.Ui.Dialog.DialogManager.DialogClose"
}

Hier sind die Guids der selektierten Einträge also 12fe59ca-196d-42d6-a9b1-3d31dd16f5e7 und 54028ce3-294d-4b41-825e-c0ecdee0ff8a.

Und auch im Fehlerfall werden hier nützliche Informationen zurückgegeben, die dann ausgewertet werden können.