W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
上面我們介紹了DataType可以用于描述實體數據,就像是數據字典。事實上,DataType不僅僅可以用來描述實體數據,DataType用于為Dorado描述所有數據。幾種DataType的繼承關系圖如下(用于描述實體數據的其實只是最為常用的EntityDataType):
最上面的DataType用于那些簡單的數據類型,例如String、int、boolean等。Dorado中默認已經對下列的數據類型創(chuàng)建了相應的DataType。
上述這些DataType都已被預先的注冊到了系統(tǒng)當中,只需要直接利用名稱引用就可以了。例如下面的代碼指定了某文本編輯框對應的數據類型是float。這樣,用戶將無法在該編輯框中輸入非浮點數的內容。
new Dorado.widget.TextEditor({ dataType: "float" });
EntityDataType是專門用于描述那些實體數據的類型。實體數據類型特指那些包含一到多個子屬性的數據類型,在JavaScript中實體數據都是以JSON對象的形式存在的。為了描述實體數據類型中的每一個屬性,Dorado提供了專用的屬性描述對象——Dorado.PropertyDef。每一個PropertyDef中都包含數據類型、校驗規(guī)則、顯示格式、是否只讀等一系列的屬性。
var dataTypePhone = new Dorado.EntityDataType({
name: "Phone",
PropertyDefs: [
{ name: "product", label: "型號", required: true },
{ name: "manufacturer", label: "生產商" },
{ name: "type", label: "機型",
mapValues: [
{ key: "A", value: "直板" },
{ key: "B", value: "翻蓋" },
{ key: "C", value: "滑蓋" },
{ key: "D", value: "旋蓋" },
{ key: "Z", value: "其它" }
]
},
{ name: "price", label: "價格", dataType: "float", displayFormat: "¥#,##0.00" },
{ name: "length", label: "長", dataType: "float", displayFormat: "0.0mm" },
{ name: "width", label: "寬", dataType: "float", displayFormat: "0.0mm" },
{ name: "height", label: "高", dataType: "float", displayFormat: "0.0mm" },
{ name: "screen", label: "屏幕", dataType: "float", displayFormat: "0.0\"" },
{ name: "touchScreen", label: "觸摸屏", dataType: "boolean" },
{ name: "cpu", label: "CPU" },
{ name: "os", label: "操作系統(tǒng)" },
{ name: "comment", label: "備注" }
]
});
$dataTypeRepository.register(dataTypePhone);
上面的代碼定義了一個包含了若干屬性信息的DataType。利用此DataType制作出的頁面可見Dorado 7 Client Edition提供的dataset.html例子。其界面效果大致如下:
實際開發(fā)時,大部分場景下我們都是通過Dorado的IDE定義DataType:
由IDE的屬性標簽定義DataType的具體屬性設置,如下是一個PropertyDef的屬性設置:
AggregationDataType用于描述集合類數據。
dorado中可以通過model.xml定義全局的DataType,各個頁面中就可以直接使用,例如在model.xml中我們定義:
之后在我們的視圖文件中,相關控件如果有dataType屬性,我們就可以直接使用它:
當然IDE設計器也提供了設置支持,在你打開dataType屬性對話框的時候,可以看到選擇列表中有一個Models屬性列表,里面就包含了你定義的全局的DataType屬性:
全局的DataType方便我們重用設置,但是如果在不同的頁面有不同個性化設置要求,例如同樣是category對象的id,有的頁面我們希望顯示名稱為"ID",有的頁面我們希望顯示名稱為"類型編號",諸如此類的個性化需求,我們都可以直接在Dorado的View中的DataType中設置解決。
首先我們要在View的Model節(jié)點添加一個私有的dataType并且設置它的parent屬性為對應的全局的DataType:
設置parent屬性時,IDE會提供向導設置窗口:
找到全局Models中的對應的DataType并添加上就可以。
接下來我們只要在這個私有的DataType添加一些個性化的設置就可以,例如本例只要添加一個id屬性,并設置它的label為"類型編號",其它都不用設置,它會直接從全局的DataType中繼承下來。
在很多場景下,如果你只想定義一個給當前頁面使用的DataType,而不需要把它設置為公用的DataType,那么你就可以不用在全局的DataType的model.xml文件中定義,在View的當前Models節(jié)點下定義DataType就可以了,并通過creatingType屬性和對應的POJO建立映射關系
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: