我有一张列表项(问题)的表格,我希望能够重新排列它们。查看屏幕截图。
当前,在按下按钮时,我可以获取当前的绑定上下文,并且可以获取该序列属性(001)。我还希望能够获得下一个绑定上下文的列表项的路径(在这种情况下为002)。
当前代码...
// Move Question Down
onQuestionMoveDown: function (oEvent) {
// Get binding context
var source = oEvent.getSource().getBindingContext("view");
var path = source.getPath();
var object = source.getModel().getProperty(path);
var currentQuestionSequence = object.Sequence;
MessageToast.show("Current # " + currentQuestionSequence);
}
然后,一旦我有了我就可以对更新逻辑进行排序。
答案 0 :(得分:0)
一种可能的解决方案是,您在模型上有一个订单值,并在用户单击按钮时更新该订单。 如果列表按该值排序,那么您将实现所需的内容。
答案 1 :(得分:0)
应该通过列表绑定将项目绑定到表,因此数据集将是Array,每行的路径将类似于“ ... / itemSet / 0,... / itemSet / 1, ...”。因此可能的解决方案可能是:
function getNextItem(oItem){
var oContext = oItem.getBindingContext("view"), // assumpe the model name is view
sPath = oContext.getPath(),
sSetPath = sPath.substr(0, sPath.lastIndexOf("/")),
iMaxLen = oContext.getProperty(sSetPath).length,
iCurIndex = parseInt(sPath.substr(sPath.lastIndexOf("/")+1));
// If it's already reach to be bottom, return undefined
return iCurIndex < iMaxLen -1 ? oContext.getProperty(sSetPath + "/" + ++iCurIndex) : undefined;
}
关于, 马文