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