#sapui5
#sapui5
Вопрос:
Я создаю эту таблицу:
tableResult.bindAggregation("items", "/items", new sap.m.ColumnListItem({
cells: tableResult.getModel().getProperty("/cols").map(function (colname) {
return new sap.m.Label({ text: "{" colname "}" });
}),
type:"Navigation",
press:"handleRowPress"
}));
tableResult.setProperty("visible",true);
В функции handleRowPress
, как я могу получить количество нажатых строк (первая, вторая, … n-я)?
Комментарии:
1. Вы уже проверили
sap.m.Table
методindexOfItem()
method (который заимствован из classsap.m.ListBase
)? sapui5.hana.ondemand.com/sdk/#docs/api/symbols /…2. Извините, я переписываю свою проблему: у меня есть функция
handleRowPress : function(evt){ evt....... }
handleRowPress, как я могу удалить количество выбранных элементов из «evt»?
Ответ №1:
Лучшим решением, предоставляемым UI5, было бы :
handleRowPress : function(oEvent){
var selectedRowNum = oEvent.getSource().indexOfItem(oEvent.getParameter("listItem"));
console.log(selectedRowNum);
}
ПРИМЕЧАНИЕ: извлечение индекса из сгенерированного идентификатора, как правило, является плохой идеей, особенно при рассмотрении сортировки / фильтрации и т.д. 😉
Комментарии:
1. хорошо, это работает, но почему каждый раз, когда я нажимаю на элемент, у меня возникает эта ошибка?
Uncaught TypeError: undefined is not a function sap-ui-core.js:122
2. Я понятия не имею, не глядя на ваш код… взгляните на этот рабочий пример: jsbin.com/vikoc/1/edit?js , консоль, вывод
Ответ №2:
Я нахожу решение!
handleRowPress : function(evt){
var path=evt.getParameter("listItem");
var sId=path.sId;
var selectedRowNum = sId.substr(sId.lastIndexOf("-") 1);
console.log(selectedRowNum);
}