Smart template的控件能否当成普通控件来用
我的同事问过我这个问题:
只要弄清楚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的控件能否当成普通控件来用相关推荐
- Smart template的控件能否当成普通控件来用 1
我的同事问过我这个问题: 只要弄清楚Smart control的原理,就能回答这个问题. 答案是: smart control可以像普通的控件一样在xml view中被定义和使用,但是必须结合ODat ...
- WPF中一个控件绑定另一个控件的属性
原文:WPF中一个控件绑定另一个控件的属性 如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin=&qu ...
- Winform根据控件名获取指定控件
/// <summary> /// 根据指定容器和控件名字,获得控件 /// </summary> /// <param name="obj"> ...
- vc mysql控件_VC++使用ActiveX控件连接和操作数据库
VS2008运用ActiveX控件连接和操作数据库关闭时一直有个内存释放的错误,好像使用VC6.0会多生成2个文件,就不会有问题. VC++使用ActiveX控件连接和操作数据库的方法分两种: 1.通 ...
- COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)
源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改 ...
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...
- [转]C#开发ActiveX控件,.NET开发OCX控件案例
引自:百度 http://hi.baidu.com/yanzuoguang/blog/item/fe11974edf52873aaec3ab42.html 讲下什么是ActiveX控件,到底有什么 ...
- Html5table控件,Table Web 控件、TableRow Web 控件及TableCell Web 控件
Table Web 控件的用法和传统的HTML 的Table 元素差异很大,为了将网页设计对象导向,Table内的列和字段也都跟着对象化了.前面我们已经提过HTML 控件的HtmlTable.Html ...
- Leaflet中实现添加比例尺控件与自定义版权控件与链接
场景 Leaflet快速入门与加载OSM显示地图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122290880 上面加载显示 ...
最新文章
- 央视与遗传发育所合拍《锄禾者新说》科教片
- php 5.6 iis7,IIS7 配置 PHP5.6 Web程序 - 贪吃蛇学院-专业IT技术平台
- linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决
- idea部署tomcat项目时,在项目里打断点不能拦截
- java 自定义文件后缀名_Java 的源代码文件的扩展名是( )。_学小易找答案
- 获取apk安装包sha1的值
- Unity3D之NGUI基础3.1:代码控制UILabel
- 利用K8S技术栈打造个人私有云(连载之:初章)
- js库编写的环境和准备工作
- cocoapods导入afnetworking报错问题
- NumberFormat
- 2021年低压电工考试题及低压电工模拟考试
- vs2019控件灰化无法使用怎么解决
- MathJax 支持的 Latex 符号总结(集合运算)
- Retrofit的封装
- 力扣刷题 DAY_68 回溯
- MySQL的集合运算
- 2022年9月最新【国际版阿里云的注册流程】分享
- ROS学习【2】-----ubuntu16.04中进行ROS通信编程(话题编程)
- 使用rrdtool统计网站PV和IP
热门文章
- 【摄像头】摄像头IRCUT滤光片
- 【数据库】mysql移植
- python中约瑟夫环程序_Python实现约瑟夫环问题的方法
- gis怎么改鼠标滚轮缩放_ArcGIS鼠标滚轮方向之代码篇
- python 排序算法 简书_Python---简析八大排序算法
- 若依前后端分离如何写移动端接口_前后端分离实践的架构设计
- 安卓怎么用抖音做锁屏_香港超级推荐全网霸屏快速上排怎么做
- 自定义html托管,10分钟搞定“傻瓜式”的静态网站搭建托管之旅
- Java项目:在线课程会员系统(java+Springboot+Maven+JSP+Spring+Mysql+layui)
- java visualvm远程监控_深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战