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

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

答案是: smart control可以像普通的控件一样在xml view中被定义和使用,但是必须结合OData annotation,否则没有意义。以Smart control里的Smart field为例,详细原理在我的博客Currency example – how Smart field works里介绍。

概括起来,就是:

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,没有任何问题。

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

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

在runtime时,它会自动被渲染成带单位的currency field。后面那个EUR的currency field就像变戏法一样生成了,其实就是sap:unit="CurrencyCode"这个annotation起的作用。至于框架是如何解析annotation并自动生成currency field,相关的代码和分析都在上述提到的博客Currency example – how Smart field works里。

该Fiori应用的目录结构:

源代码地址

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

Smart template的控件能否当成普通控件来用 1相关推荐

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

    我的同事问过我这个问题: 只要弄清楚Smart control的原理,就能回答这个问题. 答案是: smart control可以像普通的控件一样在xml view中被定义和使用,但是必须结合ODat ...

  2. WPF中一个控件绑定另一个控件的属性

    原文:WPF中一个控件绑定另一个控件的属性 如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin=&qu ...

  3. Winform根据控件名获取指定控件

    /// <summary> /// 根据指定容器和控件名字,获得控件 /// </summary> /// <param name="obj"> ...

  4. vc mysql控件_VC++使用ActiveX控件连接和操作数据库

    VS2008运用ActiveX控件连接和操作数据库关闭时一直有个内存释放的错误,好像使用VC6.0会多生成2个文件,就不会有问题. VC++使用ActiveX控件连接和操作数据库的方法分两种: 1.通 ...

  5. COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)

    源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改 ...

  6. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  7. [转]C#开发ActiveX控件,.NET开发OCX控件案例

    引自:百度   http://hi.baidu.com/yanzuoguang/blog/item/fe11974edf52873aaec3ab42.html 讲下什么是ActiveX控件,到底有什么 ...

  8. Html5table控件,Table Web 控件、TableRow Web 控件及TableCell Web 控件

    Table Web 控件的用法和传统的HTML 的Table 元素差异很大,为了将网页设计对象导向,Table内的列和字段也都跟着对象化了.前面我们已经提过HTML 控件的HtmlTable.Html ...

  9. Leaflet中实现添加比例尺控件与自定义版权控件与链接

    场景 Leaflet快速入门与加载OSM显示地图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122290880 上面加载显示 ...

最新文章

  1. Java数据结构Map遍历和排序
  2. 关于linkedin的network的观察和自己的职业道路的追求
  3. 未定义变量: data_三、变量声明
  4. ST算法 Sliding Window algorithm template
  5. 【转】关于VB中Shell及ShellExecute的总结与记录
  6. oracle中入库判断空串,不同数据库和SpringDataJPA对字段值null,''空值的判断
  7. Atitit 泛型的知识点 目录 1. 为什么需要泛型 why 2 2. 定义分类 what 2 2.1. 编辑类型参数 2 2.2. 模板 2 2.3. 简单理解 占位符 代替object、 3
  8. UDS协议之诊断会话管理服务 0x10
  9. M/M/1 排队论模型
  10. 基于鱼群算法的函数寻优算法
  11. pktgen-dpdk 进行rfc2544测试
  12. MAML-CNN代码笔记
  13. 少儿编程的感想与实践
  14. android 黑色透明背景,解决Android png透明图片转jpg时背景变黑的问题
  15. 物体位姿估计精度验证实验(涉及位姿估计,手眼标定,机械臂运动)
  16. OpenCV混合高斯模型前景分离
  17. 华为2019年第一季度业绩曝光;联想and谷歌加入英特尔新晋云计划;即特斯拉起火,蔚来ES8也维修起了火...
  18. 切换日语输入法找不到MicrosoftIME键盘选项了
  19. AUTOMATE THE BORING STUFF WITH PYTHON读书笔记 - 第8章:INPUT VALIDATION
  20. 牛客刷题笔记-数据库选择题(201-300)

热门文章

  1. sklearn自学指南(part40)--使用手册的目录
  2. sklearn自学指南(part39)--Birch
  3. 探索Julia(part11)--自定义函数
  4. 算法工程师实习岗面试题(part1)
  5. 讲讲Print里面还有什么参数可以设置
  6. SAP UI5 初学者教程之二十五 - 使用代理服务器解决 SAP UI5 应用访问远端 OData 服务的跨域问题试读版
  7. yarn install 遇到的错误消息 - Error EPERM operation not permitted, open .yarnrc
  8. SAP Spartacus新建org unit之后,排序不正确的问题分析
  9. SAP Spartacus里的WindowRef对象
  10. 记录备份2020-07-13 - 清除多余无用的Windows10环境变量