单列的内联编辑

2020-09-09 03:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

有什么可能的方法仅对cockpitNG中的单个列而不对整个行启用multireferenceeditor中的内联编辑? 某些列应限制为不可编辑,或者是否可以通过用户权限配置它? 我限制用户可以更改和读取属性,但是唯一发生的是它显示"您没有权限",但是我仍然可以通过内联编辑对其进行编辑

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

有什么可能的方法仅对cockpitNG中的单个列而不对整个行启用multireferenceeditor中的内联编辑? 某些列应限制为不可编辑,或者是否可以通过用户权限配置它? 我限制用户可以更改和读取属性,但是唯一发生的是它显示"您没有权限",但是我仍然可以通过内联编辑对其进行编辑

付费偷看设置
发送
5条回答
SAP小菜
1楼-- · 2020-09-09 03:49

嗨,

恐怕没有此类功能。 您可以考虑扩展默认的单元格编辑器,并在其中添加一些自定义逻辑。 请查看 com.hybris.cockpitng.editor.extendedmultireferenceeditor.renderer.DefaultCellRenderer com.hybris.cockpitng.editor.extendedmultireferenceeditor.renderer.DefaultRowRenderer 。 我会把您的自定义设置在这里。

干杯, 雅切克

SC_Yao
2楼-- · 2020-09-09 03:45

是否有可能像我下面所述? 还是我必须实现WidgetComponentRenderer类? 如果是这样,我如何获取cellcontext将其更改为inlineediting = false?

三十六小时_GS
3楼-- · 2020-09-09 04:05

嗨,

感谢您的回答。 我目前正在使用自己的类来扩展DefaultCellRenderer,因为我只想编辑一个等于某种模式的单元格。 当他在以下位置检查时,它给了我nullpointers:

if(isAtomicAttribute(cellContext)) else if(isCompletxAttribute(cellContext))在DefaultCellRenderer内部。

即使我在spring.xml中定义了一个bean并在cockpit.xml中分配了它,他也没有使用我的代码

cockpit.xml

  

  

spring.xml

  
      
           
           <属性名称=" objectValueService" ref =" objectValueService"/>
           
           
           
      

  

我的代码:

 公共类PremCavokMediaMultiReferenceEditorLabelRenderer扩展DefaultCellRenderer 
  {
 
      @Override
      公共无效渲染(最终CellContext  cellContext)
      {
          用于(最终DataAttribute属性:cellContext.getRowEntryDataType()。getAttributes())
          {
              如果(attribute.equals(" cavokMedia"))
              {
                  cellContext.setInlineEditingEnabled(false);
              }
          }
          super.render(cellContext);
      }

  

有什么想法吗?

bbpeas
4楼-- · 2020-09-09 03:48

您好,您最终为此做了什么?

歪着头看世界
5楼-- · 2020-09-09 03:41

嗨,

恐怕在 ExtendedMultireferenceEditor 中覆盖渲染器并不是那么简单。 仔细查看源代码之后,我对您发布的内容几乎没有评论:

  • 您可以在列级别设置 spring-bean ,但是它需要指向 com.hybris.cockpitng.widgets.common.WidgetComponentRenderer 类型

  • 在列级别指定的Bean仅用于呈现列值的可读表示(即标签,图标等)-它无法定义值是否可编辑和/或如何可编辑

  • ,您可以通过定义类型为 com.hybris.cockpitng.editor.extendedmultireferenceeditor.renderer.CellRenderer 的新bean来更改 ExtendedMultireferenceEditor 的默认单元格渲染器。 可能会扩展 com.hybris.cockpitng.editor.extendedmultireferenceeditor.renderer.DefaultCellRenderer ),但请记住,它将在全局范围内更改(对于所有编辑器实例)

  • 为单个编辑器实例更改单元格编辑器将需要定义您的自定义编辑器,该自定义编辑器将在 com.hybris.cockpitng.editor.extendedmultireferenceeditor.DefaultExtendedMultiReferenceEditor#createReferenceLayout 中创建行渲染器的自定义实现。 code>方法。

干杯, 雅西克

一周热门 更多>