我正在使用xmlFragment中的sap.m.SelectDialog,其中搜索,确认和关闭事件的功能未触发。请参阅下面的代码,并让我知道我要去哪里。
片段
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core">
<SelectDialog
title="Contract Items"
class="sapUiPopupWithPadding"
items="{ci>/contracts}"
search="handleValueHelpSearch"
confirm="handleValueHelpClose"
cancel="handleValueHelpClose"
multiSelect="true">
<StandardListItem
title="{ci>name}"/>
</SelectDialog>
</core:FragmentDefinition>
控制器
handleValueHelpClose: function (oEvent) {
var aSelectedItems = oEvent.getParameter("selectedItems"),
oMultiInput = this.byId("contract_itm_in");
if (aSelectedItems && aSelectedItems.length > 0) {
aSelectedItems.forEach(function (oItem) {
oMultiInput.addToken(new Token({
text: oItem.getTitle()
}));
});
}
oValueHelpDialog = 0;
},
handleValueHelpSearch: function (oEvent) {
var sValue = oEvent.getParameter("value");
var oFilter = new Filter(
"Name",
FilterOperator.Contains,
sValue
);
oEvent.getSource().getBinding("items").filter([oFilter]);
},
父视图
<MultiInput width="10%" id="contract_itm_in">
我也尝试将事件附加到对话框。不幸的是,它没有用。
BR,Anusha
请将对话框附加到父视图,以使控制器中可见的功能可见。
下面的示例代码
this.getView().addDependent(oValueHelpDialog);
我发现了问题,在这里我试图链接两个Input控件,以使input2的值帮助取决于为input1选择的值。因此,我在Input1的selectedItem事件中附加了valueHelpRequest处理程序,该事件更改了valueHelpRequest函数和所有与Input2相关的函数的上下文。意识到这一点,我删除了selectedItem中的attachEvent并在valueHelpRequest中写了一个条件来检查Input1是否已填充。
谢谢大家,