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-DialogDataProvider
Die Guid des Data Providers welcher verwendet werden soll.
Nur bei Combobox notwendig, wennIsEnumDialog: false
ist.RepeatColumns
Optional: Über wie viele Spalten sollen sich die Elemente aufteilen (Default: 2)
Nur bei Checkbox-Liste und der Radiobutton-ListeRepeatDirection
Optional: Soll die Aufteilung Horizontal (Default) oder Vertikal erfolgen.
Nur bei Checkbox-Liste und der Radiobutton-ListeAddButtons
Optional: Zusätzliche Buttons zum Dialog hinzufügen
Siehe Hinweis für zusätzliche ButtonsPreselected
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-TitelMethod
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: BA.Ui.Dialog.DialogResult) { console.log(result); console.log(result.Data); }
);
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: BA.Ui.Dialog.DialogResult) { console.log(result); console.log(result.Data); }
);
Checkbox-Liste
BA.Ui.Dialog.DialogManager.OpenDialog(
"BA.Core.Dialogs.CheckboxList",
{ DialogTitle: "Enum CheckboxList", Caption: "Bitte wählen", ModelType: "EnumEmailAddressType" },
{custom: „data“},
function (result: BA.Ui.Dialog.DialogResult) { console.log(result); console.log(result.Data); }
);
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: BA.Ui.Dialog.DialogResult) { console.log(result); console.log(result.Data); }
);
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: BA.Ui.Dialog.DialogResult) { console.log(result); console.log(result.Data); }
);
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: BA.Ui.Dialog.DialogResult) { console.log(result); console.log(result.Data); }
);
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.