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应用的目录结构:

源代码地址

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

原文地址:https://www.cnblogs.com/sap-jerry/p/8469923.html

时间: 2024-08-30 17:20:45

Smart template的控件能否当成普通控件来用的相关文章

控件 UI: VisualState, VisualStateManager, 控件的默认 UI

VisualState 和 VisualStateManager 控件的默认 Style, ControlTemplate, VisualState 示例1.演示“VisualState 和 VisualStateManager”相关知识点Controls/UI/VisualState/VisualStateDemo.xaml <Page x:Class="Windows10.Controls.UI.VisualState.VisualStateDemo" xmlns="

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

原文:WPF中一个控件绑定另一个控件的属性 如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin="50,130"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width="40"/> </Grid.ColumnDefinitions>

重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性

[源码下载] 重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性 作者:webabcd介绍重新想象 Windows 8.1 Store Apps 之控件增强 文本类控件的增强 为一些控件增加了 Header 属性和 HeaderTemplate 属性 为一些控件增加了 PlaceholderText 属性 示例1.演示

ASP.NET控件&lt;ASP:Button /&gt; html控件&lt;input type=&quot;button&quot;&gt;区别联系

ASP.NET控件<ASP:Button />-------html控件<input type="button">杨中科是这么说的:asp和input是一样的东西 服务器只认识input,我们可以直接写input 但是asp是要把自己自动翻译成input再交给服务器的.其实是一样的东西 写写我看到的区别:                asp控件,直接可以用c#编程                input加上 runat=“server” 也被c#编程了 说白

【转】VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)

原文网址:http://www.jizhuomi.com/software/189.html 上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件.它为我们的日常操作提供了很多方便. 组合框控件简介 组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框.下拉式(Dropdown)组合框和下拉列表式(Dro

通过WinForm控件创建的WPF控件无法输入的问题

今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在我的机器上却是好好的. 最开始以为是输入法的问题,弄了好一阵子后,终于找到了原因:虽然这个程序是个WPF程序,但为了复用之前的部分代码,使用着一个WinForm的菜单控件,后续的子窗口都是通过这个WinForm菜单创建的.而用WinForm控件创建的WPF控件可能出现无法正确响应键盘事件的情况. 找到了原因后,一个常规的解决方法是:将WinForm控件换成WP

atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系

1. 服务器控件是可被服务器理解的标签.有三种类型的服务器控件: 1 1.1. HTML 服务器控件 - 传统的 HTML 标签 1 1.2. Web 服务器控件 - 新的 ASP.NET 标签 1 1.3. Validation 服务器控件 - 用于输入验证 1 2. HTML 服务器控件 1 3. - Web 服务器控件 2 4. 标准服务器控件可分为以下6种类型: 2 4.1. (1)标准控件:主要是指传统的Web窗体控件,例如TextBox.Button.Panel等控件.它们有一组标准

C#控件系列--文本类控件

C#控件系列--文本类控件 文本类控件主要包括Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能 Label用来显示用户不能直接改变的文本信息. 属性 Image--指定标签上显示的图像. Text--此属性是与文件相关联的文本. Name--标识对象的名称. AutoSize--如果此属性为true,则启用了根据字号自动调整大小.请注意,这只对文本不换行的标签控件有效. Enabled--是否启用该控件. Visible--可见还是隐藏.

javascript控件开发之工具栏控件

在前几篇的基础上,本篇将开发工具栏控件,工具栏控件一般包括三部份, 1.toolBar控件,简单说就是工具栏容器, 2.toolButton控件,即工具栏上的按钮控件,该按钮控件包括图标和文字两部份, 3.则是分隔符控件,一般分隔符控件也是在toolButton控件基础上引申出来的, 为了简单易学,我们这里直接用上一篇的控件作为toolBar控件使用,也就是我们这次编写出来的toolButton控件直按放一Panel控件上, 首先在component\ui\文件夹下添加控件文件,com.ui.t