我需要多选和树形结构下拉。 所以我使用像
这样的html控件new sap.ui.core.HTML({
content: "<div id=\"multiselection\"><select id=\"myid\" multiple=\"multiple\"></select></div>",
layoutData: new sap.ui.layout.GridData({span: "L4 M4 S4"}),
}),
现在我在mypage.controller.js的onInit函数中得到ajax响应,如下所示
var optgroups = [{"label":"WKS-FINGER1","children":[{"label":"WKS1","value":"WKS1"}]},{"label":"WKS-FINGER3","children":[{"label":"WKS3","value":"WKS3"}]},{"label":"WKS-FINGER4","children":[{"label":"WKS4","value":"WKS4"}]},{"label":"WKS-FINGER5","children":[{"label":"WKS5","value":"WKS5"}]}];
现在我在这里绑定(注意我使用的是bootstrap-multiselect.js)
$('#myid').multiselect({
enableClickableOptGroups: true,
onChange: function(option, checked, selected,element) {
var selection = [];
$('#myid option:selected').each(function() {
selection.push([$(this).val() , $(this).data('order') ]);
});
// alert(selection);
sap.ui.controller("oui5mvc.odbbshift").someFunction(selection);
}
});
$('#myid').multiselect('dataprovider', optgroups);
问题是我没有像这样检查myid.i
var myElem = document.getElementById('myid');
if (myElem === null){
alert('does not exist!');
}
else{
alert('it exist!');
}
但如果我在onAfterRendering方法中使用相同的代码,它可以正常工作。