Smarttemplate的控制元件能否當成普通控制元件來用
我的同事問過我這個問題:
只要弄清楚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的原創技術文章,請關注公眾號”汪子熙”或者掃描下面二維碼:
相關文章
- C# WinForm控制元件及其子控制元件轉成圖片(支援帶捲軸的長截圖)C#ORM控制元件
- js圖表控制元件:highcharts的應用JS控制元件
- Devexpress 控制元件學習記錄(一:BarManager 控制元件、XtraTabbedMdiManager 控制元件)devExpress控制元件
- C#控制元件之Repeater控制元件使用C#控制元件
- c# 獲取當前方法事件對應的控制元件C#事件控制元件
- Android基本控制元件和Activity的基本應用Android控制元件
- Flutter 的基本控制元件Flutter控制元件
- html的常用控制元件HTML控制元件
- iOS自定義控制元件:簡易下拉控制元件iOS控制元件
- Canvas 控制元件Canvas控制元件
- 開發ActiveX控制元件的實踐(1)--用VS2010開發一個簡單的TestOcx控制元件控制元件
- iOS-控制元件封裝為framework來使用iOS控制元件封裝Framework
- Android的基本控制元件和Activity的應用總結Android控制元件
- 鴻蒙安全控制元件之位置控制元件簡介鴻蒙控制元件
- QT常用控制元件(三)——自定義控制元件封裝QT控制元件封裝
- delphi 控制元件 LssCalendar V2.0 (支援農曆的月曆控制元件)控制元件
- vue的樹形控制元件Vue控制元件
- lodop列印控制元件的使用控制元件
- ACCESS TreeView控制元件的使用View控制元件
- WPF 寫的ComboBoxTree 控制元件控制元件
- LVGL庫的bar控制元件控制元件
- WPF進階技巧和實戰03-控制元件(3-文字控制元件及列表控制元件)控制元件
- WPF進階技巧和實戰03-控制元件(4-基於範圍的控制元件及日期控制元件)控制元件
- Android常用控制元件-BannerView(無限輪播圖控制元件)Android控制元件View
- 鴻蒙安全控制元件之儲存控制元件簡介鴻蒙控制元件
- 鴻蒙安全控制元件之貼上控制元件簡介鴻蒙控制元件
- Android 控制元件架構與自定義控制元件詳解Android控制元件架構
- 八、android當中五大布局控制元件。其它常用佈局Android控制元件
- 如何將SAP Document Builder的word控制元件設定成只讀模式UI控制元件模式
- 【WEB自動化測試之控制元件定位】基於HTML5控制元件的唯一控制元件屬性定位Web控制元件HTML
- 基本控制元件(一)控制元件
- Android列表控制元件Android控制元件
- QT控制元件大全QT控制元件
- Popup 控制元件[WPF]控制元件
- DispatcherTimer 控制元件[WPF]控制元件
- Flutter控制元件--AppBarFlutter控制元件APP
- Android 分享控制元件Android控制元件
- App控制元件定位APP控制元件