天天看点

Smart template的控件能否当成普通控件来用

我的同事问过我这个问题:

Smart template的控件能否当成普通控件来用

只要弄清楚Smart control的原理,就能回答这个问题。

概括起来,就是:

1. Smart field本身也是一个控件,更准确的说是一个没有UI输出的控件,只是一个壳。在UI render的时候,smart field会演变成input field,还是drop down list,还是date picker,还是F4 help,这些都需要有一个角色来告诉smart field,这个角色就是Odata annotation。Metadata里定义的annotation会决定smart field最后的输出方式。

2. Smart control可以脱离Smart template框架单独使用。也就是说您可以创建一个很简单的xml view,然后在这个view里像使用普通控件那样使用smart control,没有任何问题。

请参考这个例子(完整实现代码在文末):

Smart template的控件能否当成普通控件来用

在XML view里,我定义了一个Smart field,绑到Price这个property上。

Smart template的控件能否当成普通控件来用
Smart template的控件能否当成普通控件来用

该Fiori应用的目录结构:

Smart template的控件能否当成普通控件来用

<a href="https://github.com/i042416/KnowlegeRepository/tree/master/ABAP/smartControlDemo/webapp">源代码地址</a>

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

Smart template的控件能否当成普通控件来用
Smart template的控件能否当成普通控件来用