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

只要弄清楚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应用的目录结构:

源代码地址

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

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

    我的同事问过我这个问题: 只要弄清楚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. 央视与遗传发育所合拍《锄禾者新说》科教片
  2. php 5.6 iis7,IIS7 配置 PHP5.6 Web程序 - 贪吃蛇学院-专业IT技术平台
  3. linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决
  4. idea部署tomcat项目时,在项目里打断点不能拦截
  5. java 自定义文件后缀名_Java 的源代码文件的扩展名是( )。_学小易找答案
  6. 获取apk安装包sha1的值
  7. Unity3D之NGUI基础3.1:代码控制UILabel
  8. 利用K8S技术栈打造个人私有云(连载之:初章)
  9. js库编写的环境和准备工作
  10. cocoapods导入afnetworking报错问题
  11. NumberFormat
  12. 2021年低压电工考试题及低压电工模拟考试
  13. vs2019控件灰化无法使用怎么解决
  14. MathJax 支持的 Latex 符号总结(集合运算)
  15. Retrofit的封装
  16. 力扣刷题 DAY_68 回溯
  17. MySQL的集合运算
  18. 2022年9月最新【国际版阿里云的注册流程】分享
  19. ROS学习【2】-----ubuntu16.04中进行ROS通信编程(话题编程)
  20. 使用rrdtool统计网站PV和IP

热门文章

  1. 【摄像头】摄像头IRCUT滤光片
  2. 【数据库】mysql移植
  3. python中约瑟夫环程序_Python实现约瑟夫环问题的方法
  4. gis怎么改鼠标滚轮缩放_ArcGIS鼠标滚轮方向之代码篇
  5. python 排序算法 简书_Python---简析八大排序算法
  6. 若依前后端分离如何写移动端接口_前后端分离实践的架构设计
  7. 安卓怎么用抖音做锁屏_香港超级推荐全网霸屏快速上排怎么做
  8. 自定义html托管,10分钟搞定“傻瓜式”的静态网站搭建托管之旅
  9. Java项目:在线课程会员系统(java+Springboot+Maven+JSP+Spring+Mysql+layui)
  10. java visualvm远程监控_深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战