SAPUI5 List Item上下文绑定,获取下一个路径

时间:2019-01-30 10:50:30

标签: sapui5

我有一张列表项(问题)的表格,我希望能够重新排列它们。查看屏幕截图。

Binding Context

当前,在按下按钮时,我可以获取当前的绑定上下文,并且可以获取该序列属性(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);
}

然后,一旦我有了我就可以对更新逻辑进行排序。

2 个答案:

答案 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;
}

关于, 马文

相关问题