【问题标题】:SAPUI5 Grid Table Batch EditingSAPUI5 网格表批量编辑
【发布时间】:2018-04-22 23:50:45
【问题描述】:

我正在使用 SAPUI5 网格表批量编辑(可编辑或不可编辑单元格)。我正在考虑下面提到的两个选项,但我不确定我是否可以实现这一点,或者网格表是否支持它

  1. 我想单击一个网格单元格并将控件从文本更改为输入,以便我可以编辑记录并稍后保存。

  2. 保持输入可编辑为假,并通过单击单元格或输入(无论哪个容易),将输入可编辑更改为真。我正在尝试此选项,但是一旦将 input editable 设置为 false 就不会在输入上触发任何事件,因此根本无法更改状态。

另外,我注意到在 Table 本身上将 editable 设置为 false 并没有做任何事情,至少在我的情况下它没有做任何事情。

任何帮助或指导将不胜感激。

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    要使用多种类型的控件,您需要处理它们的特定事件。尝试设置隐藏控件并处理它们的事件以使其可见或不可见。

    查看

    <VBox>
      <Link text="{OrderID}" press="onSFPressed" visible="true"/>
      <Input value="{OrderID}" submit="onSFSubmitted" change="onSFChanged" visible="false"/>
    </VBox>
    

    控制器

    onSFPressed: function(oEvent){
        var oText = oEvent.getSource();
        var oInput = oEvent.getSource().getParent().getItems()[1];
    
        oText.setVisible(false);
        oInput.setVisible(true);
    },
    
    onSFSubmitted: function(oEvent){
        var oText = oEvent.getSource().getParent().getItems()[0];
        var oInput = oEvent.getSource();
    
        oText.setVisible(true);
        oInput.setVisible(false);
    },
    
    onSFChanged: function(oEvent){
        var oText = oEvent.getSource().getParent().getItems()[0];
        var oInput = oEvent.getSource();
    
        oText.setVisible(true);
        oInput.setVisible(false);
    }
    

    这里是sn-p:https://plnkr.co/edit/nSMv3BZoifdQaqWYtZgM?p=preview

    【讨论】:

    • 感谢您的回答,但智能字段不适用于选择或输入建议。如果我错了,请纠正我?
    • 如果你想使用不同的控件作为输入,你应该处理它们的特定事件。我已经用显示/隐藏功能编辑了我的答案和 sn-p。看看!!
    • 我喜欢这种方法,为什么我没有考虑它。感谢我会对此进行一些更改,但感谢您给我这个想法。
    【解决方案2】:

    您似乎只是为了视觉表示才需要此功能(您不想在每个网格表格单元格中看到原始输入)。

    最简单的解决方案是在每个单元格中使用 sap.m.Input 控件并使用 CSS 来伪造 sap.m.Text .

    我创建了一个简单的示例:http://jsbin.com/ziwoyel/edit?html,js,output

    CSS:

     .myCustomInputClass input {
        border: 0;
        background: none;
      }
    

    这是最简单轻量级的解决方案。

    如果你真的需要在2个控件之间切换,我建议创建一个自定义控件,它封装了基于焦点输入/输出事件在2个状态(2个控件)之间切换的逻辑。

    【讨论】:

    • SAPUI5 开箱即用是否支持此类功能?虽然我已经说过我真的很喜欢拥有自定义控件的想法。
    • 没明白你的意思。有一个有效的 SAPUI5 API 用于创建自定义控件(该方法在 api 文档中有详细记录)。这种要求的根本原因是什么?
    • 对不起,如果我不清楚,我同意您使用自定义控件的方法,我知道这是一种有效的方法。我上述评论的意思是网格表中是否有任何允许批量编辑的属性或配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多