1つの項目が選択されているときに他の項目では選択できない3つのリストがページにあります。私は、そのページに移動するときに、選択されたリストアイテムに焦点を当てたコードを書いています。今、問題は焦点が合っておらず、addEventDelegate
がリストのために働いていないということです。フォーカスコードが実行され、再びスクロールバーが上に移動しています。複数のリストを持つページ内のリスト項目をスクロールする方法
当初、私は次のように試してみました:それは動作しませんでした
tList.addEventDelegate({
onAfterRendering: function() {
debugger;
var a = sap.ui.getCore().byId("typesList").getSelectedItems()[0];
if(a != undefined) {
$("#"+a.sId)[0].focus();
}
}
}, this)
cList.addEventDelegate({
onAfterRendering: function() {
debugger;
var a = sap.ui.getCore().byId("catList").getSelectedItems()[0];
if(a != undefined) {
$("#"+a.sId)[0].focus();
}
}
}, cList)
sList.addEventDelegate({
onAfterRendering: function() {
debugger;
var a = sap.ui.getCore().byId("statList").getSelectedItems()[0];
if(a != undefined) {
$("#"+a.sId)[0].focus();
}
}
}, sList)
。 onAfterRendering
は決して解雇されません。私はこれを試してみました:
onRouteMatched: function(oEvent) {
debugger;
var tList = sap.ui.getCore().byId("typesList");
var cList = sap.ui.getCore().byId("catList");
var sList = sap.ui.getCore().byId("statList");
var typesItem = sap.ui.getCore().byId("typesList").getSelectedItems()[0];
if(typesItem != undefined) {
$("#"+typesItem.sId)[0].focus();
}
var catItem = sap.ui.getCore().byId("catList").getSelectedItems()[0];
if(catItem != undefined) {
var i = cList.indexOfItem(catItem);
//$("#"+catItem.sId)[0].focus();
cList.getItems()[i].focus();
}
var statItem = sap.ui.getCore().byId("statList").getSelectedItems()[0];
if(statItem != undefined) {
$("#"+statItem.sId)[0].focus();
}
}
それがうまく働いていますが、スクロールバーは、このコードを実行した後、ビューの上部に移動され、なぜ私にはわかりません。
提案がありますか?
(http://meta.stackoverflow.com/q/322657/601179) – gdoron
[メタで議論]私はあなたが 'sap.m.List'を使用していると思います。 DOM(jQueryを使用)を直接変更する必要はありません。 ListBaseには、この場合の[setSelectedItems](https://sapui5.hana.ondemand.com/docs/api/symbols/sap.m.ListBase.html#setSelectedItem)があります。また、私が知る限り、ListItemには '' Type = Active''(https://sapui5.hana.ondemand.com/docs/api/symbols/sap.m.ListItemBase.html#getType) 「非アクティブ」アイテムは「選択」できません。 – masch
返事ありがとうございます。私の商品が選択されています。問題はスクロールバーです.3つのリストの1つに選択されている項目にフォーカスを当てたいと思います。スクロールバーが選択したリスト項目に移動し、 – Anjali