【翻译】eXpressAppFramework QuickStart 业务模型设计(十)——在代码中实现数据验证...
這一講,你將學(xué)到如何給業(yè)務(wù)對(duì)象和他們的屬性設(shè)置規(guī)則。最終用戶在執(zhí)行賦值操作后將驗(yàn)證這些規(guī)則。你可以實(shí)現(xiàn)必填規(guī)則使得Position.Title屬性不能為空。此規(guī)則將在Position對(duì)象保存的時(shí)候被驗(yàn)證。你還能夠看到打破規(guī)則的界面提示。
在此之前,我建議你去讀一下之前的課程:
·? 【翻譯】eXpressAppFramework QuickStart 業(yè)務(wù)模型設(shè)計(jì)(二)—— 從業(yè)務(wù)類庫(kù)中繼承
· ?【翻譯】eXpressAppFramework QuickStart 業(yè)務(wù)模型設(shè)計(jì)(四)—— 實(shí)現(xiàn)自定義業(yè)務(wù)類
·? 給你的MySolution.Module項(xiàng)目添Validation模塊。為此,在解決方案導(dǎo)航的MySolution.Module項(xiàng)目中找到XXXModule.cs文件。雙擊。調(diào)用Module設(shè)計(jì)器。在ToolBar中,找到DX: XAF.Modules.vX.X。拖動(dòng)ValidationModule到設(shè)計(jì)器的RequiredModules項(xiàng)中。重新生成解決方案。
?·? 在Position類的Title屬性上應(yīng)用RuleRequiredField特性。第一個(gè)參數(shù),制定Rule ID(如"RuleRequiredField for Position.Title");第二個(gè)參數(shù),驗(yàn)證規(guī)則的上下文(如 DefaultContexts.Save)。如下代碼演示此特性:
[System.ComponentModel.DefaultProperty("Title")]
public?class?Position?:?BaseObject?{
???//
???private?string?title;
???[RuleRequiredField("RuleRequiredField?for?Position.Title",DefaultContexts.Save)]
???public?string?Title?{
??????get?{?return?title;?}
??????set?{?SetPropertyValue("Title",?ref?title,?value);?}
???}
}
·? 運(yùn)行程序(不管是Windows Forms還是ASP.NET)。打開Position明細(xì)視圖。確保Title屬性為空并且點(diǎn)擊Save按鈕。將顯示出如下警告信息:
......Windows Forms應(yīng)用程序:
?
?......ASP.NET應(yīng)用程序:
?
此警告信息將在你點(diǎn)擊SaveAndClose按鈕或者其他將對(duì)象保存到數(shù)據(jù)庫(kù)中的行為時(shí)出現(xiàn)。
·? 關(guān)閉此警告信息,給Title屬性賦值并且點(diǎn)擊Save按鈕。對(duì)象將被成功保存。
我的話:
這個(gè)QuickStart的業(yè)務(wù)模型設(shè)計(jì)系列總算的翻譯完了。不過單這10篇文章相信大家已經(jīng)能體會(huì)出XAF的強(qiáng)大之處了——編程人員只用寫業(yè)務(wù)對(duì)象。我覺得這是一種很好的提高生產(chǎn)力的方式,下面的文章我就會(huì)針對(duì)XAF的內(nèi)部框架實(shí)現(xiàn)進(jìn)行分析。這個(gè)QuickStart其實(shí)還有其他的部分,我就不翻譯了,大家可以下載文檔自己學(xué)習(xí)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/1231net/archive/2009/11/04/1596067.html
總結(jié)
以上是生活随笔為你收集整理的【翻译】eXpressAppFramework QuickStart 业务模型设计(十)——在代码中实现数据验证...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程之静态代理
- 下一篇: JMeter中添加dubbo相关插件异常