我創建了一個驗證表單的方法。此方法使用另一個類的擴展。驗證其他表單的代碼工作相同,但它阻止我驗證日誌記錄表單。代碼幾乎相同,但不適用於此實例。在自己的錯誤提供程序擴展中驗證c#中的表格
這裏是我的驗證方法:
public bool ValidateForm()
{
bool isValid = true;
errProv.ClearErrors(txtUsername, txtPassword);
if(String.IsNullOrEmpty(txtUsername.Text)) { errProv.SetError(txtUsername, LangRes.FieldIsRequired); isValid = false; }
if(String.IsNullOrEmpty(txtPassword.Text)) { errProv.SetError(txtPassword, LangRes.FieldIsRequired); isValid = false; }
return isValid;
}
這是我的錯誤提供的類:
public static class ErrorProviderExtension
{
/// <summary>
/// To Clear all errors associated with controls
/// </summary>
/// <param name="errProv"></param>
/// <param name="controls"></param>
public static void ClearErrors(this ErrorProvider errProv, params Control[] controls)
{
if (controls!=null & controls.Length>0)
{
foreach(Control c in controls)
{
errProv.SetError(c, String.Empty);
}
}
}
}
的問題是不設置到對象的實例對象的引用,但我不瞭解它,以及如果另一個工作沒有這個問題,我不明白爲什麼這一個給我這個例外。有人可以幫忙嗎?
如果你恰好表示*,其中*發生了誤差,這將有助於?你嘗試過調試嗎?什麼變量爲null並拋出異常? –
@ rory.ap'errProv.SetError(c,String.Empty);'< - 這是一個行,它會導致異常。我不擅長調試。我認爲錯誤來自'errProv.ClearErrors(txtUsername,txtPassword);'這行 – UZIERSKI
是否真的有效代碼? 我可以看到如果(controls!= null&controls.Length> 0)只有一個&不行,你應該有&&。 –