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的原創技術文章,請關注公眾號”汪子熙”或者掃描下面二維碼:
相關文章
- JS修改當前控制元件樣式&為控制元件追加事件JS控制元件事件
- 相當於delphi的日曆控制元件 (轉)控制元件
- 讓普通控制元件擁有左鍵移動窗體的功能控制元件
- GridView用資料來源控制元件和用DataTable作為資料來源的不同View控制元件
- Windows Phone 部分控制元件的應用Windows控制元件
- 自定義控制元件(一) Activity的構成(PhoneWindow、DecorView)控制元件View
- delphi 控制元件的拿來主義(一) (轉)控制元件
- Delphi控制元件的拿來主義(二) (轉)控制元件
- Delphi控制元件的拿來主義(三) (轉)控制元件
- C# WinForm控制元件及其子控制元件轉成圖片(支援帶捲軸的長截圖)C#ORM控制元件
- 自定義控制元件中的控制元件呼叫引用控制元件的頁面裡的函式 (轉)控制元件函式
- 用olldbg破解,分析ocx控制元件LLDB控制元件
- c# 獲取當前方法事件對應的控制元件C#事件控制元件
- 用UIPresentationController來寫一個簡潔漂亮的底部彈出控制元件UIController控制元件
- Devexpress 控制元件學習記錄(一:BarManager 控制元件、XtraTabbedMdiManager 控制元件)devExpress控制元件
- 改良控制元件-Delphi自帶控制元件Bug的消除 (轉)控制元件
- C#控制元件之Repeater控制元件使用C#控制元件
- 自定義控制元件之歌詞RCL控制元件控制元件
- silverlight控制元件模型之選擇控制元件和列表控制元件控制元件模型
- iOS-控制元件封裝為framework來使用iOS控制元件封裝Framework
- 設定父控制元件的alpha 不影響子控制元件控制元件
- C#自定義控制元件:如果定義控制元件的事件C#控制元件事件
- Flutter 的基本控制元件Flutter控制元件
- html的常用控制元件HTML控制元件
- iOS自定義控制元件:簡易下拉控制元件iOS控制元件
- Android基本控制元件和Activity的基本應用Android控制元件
- js圖表控制元件:highcharts的應用JS控制元件
- 用DataBindings屬性繫結控制元件的值控制元件
- 子控制元件控制元件
- 控制元件 (轉)控制元件
- Canvas 控制元件Canvas控制元件
- 原來的控制元件delphi7裡何處尋? (轉)控制元件
- QT常用控制元件(三)——自定義控制元件封裝QT控制元件封裝
- jn-時間控制元件查詢問題(控制元件不帶時分秒,但是查詢要包含當天)修改完成控制元件
- 如何將SAP Document Builder的word控制元件設定成只讀模式UI控制元件模式
- 設定父控制元件的alpha-但是不影響子控制元件控制元件
- 動態新增控制元件時,計算控制元件大小的解決方法控制元件
- 擴充套件input的web輸入控制元件(日期時間控制元件)套件Web控制元件