0
我有幾個服務器控件實現了IValidator
接口。因此,他們有自己的Validate()
方法,看起來像這樣。IValidator.Validate方法並向自定義類型添加錯誤消息
public void Validate()
{
this.IsValid = true;
if (someConditionFails())
{
ErrorMessage = "Condition failed!";
this.IsValid = false;
}
}
據我所知,這些Validate()
方法是保存按鈕的事件處理程序之前執行加載完成事件之前在回發執行。我想要做的是傳入一個自定義類的實例的引用,該實例收集可以從「保存」按鈕事件處理程序訪問的所有錯誤消息。
換句話說,我願做這樣的事情:
public void Validate(ref SummaryOfErrorMessages sum)
我想我不能這樣做,因爲簽名是從什麼IValidator
接口有不同。我能想到的另一個選項是Load Completed事件,我將遍歷頁面上的所有驗證器,獲取IsValid = false
,並在那裏創建我的SummaryOfErrorMessages
。這聽起來正確嗎?有沒有更好的方法來做到這一點?
@Matti - 感謝有關驗證組的說明。我創建了一個覆蓋的Page.Validate,它不僅抓取BaseValidators,還抓取IValidator。所以一切都很好。 我想我必須做一些像Page.Validators [x] .IsValid,然後相應地添加消息。不知何故,這感覺就像一個黑客。我想以某種方式將所有消息添加到各個IValidators中 – Nick 2010-03-31 21:48:29