如何從頁面背後的相同代碼的其他方法調用以下方法?我不知道如何處理(object sender, ServerValidateEventArgs args)
位。我致電CustomValidatorDelLN_ServerValidate();
我在括號內放什麼?從另一個方法調用EventHandler
4
A
回答
1
這樣的事情可以工作...
protected void CustomValidatorDelLN_ServerValidate(object sender, ServerValidateEventArgs args)
{
args.IsValid = isValid();
}
protected bool isValid()
{
bool is_valid = txtDeliveryLastName.Text != "";
txtDeliveryLastName.BackColor = is_valid ? System.Drawing.Color.White : System.Drawing.Color.LightPink;
return is_valid;
}
6
既然你不能直接引用sender
,而你沒有正確使用ServerValidateEventArgs
,您可以通過快捷事情有點:
var args = new ServerValidateEventArgs(String.Empty, false);
CustomValidatorDelLN_ServerValidate(null, args);
我不會做,雖然。我會建議重構。從其他代碼調用事件處理程序確實沒有意義。您可以輕鬆地提取驗證邏輯並將其置於單獨的方法中。然後,您可以使用新的方法從代碼中的兩個點:
// You can call this method from both places
protected bool ValidateLastName()
{
bool isValid = !String.IsNullOrWhiteSpace(txtDeliveryLastName.Text);
txtDeliveryLastName.BackColor = isValid ? Color.White : Color.LightPink;
return isValid;
}
// This would be the modified Event Handler
protected void CustomValidatorDelLN_ServerValidate(object sender,
ServerValidateEventArgs args)
{
args.IsValid = ValidateLastName();
}
+0
這是一個該死的好主意。要去一試! – ComfortablyNumb
3
。提取驗證邏輯的另一種方法
public bool CheckValidity()
{
bool is_valid = txtDeliveryLastName.Text != "";
txtDeliveryLastName.BackColor = is_valid ? System.Drawing.Color.White : System.Drawing.Color.LightPink;
return is_valid;
}
並使用它
protected void CustomValidatorDelLN_ServerValidate(object sender, ServerValidateEventArgs args)
{
args.IsValid = CheckValidity();
}
現在叫CheckValidity()
從任何地方
0
因爲您的代碼不實際使用sender
參數,你可以簡單地傳遞一個空。至於ServerValidateEventArgs
,你可以將它更新一下,沒有魔法。
CustomValidatorDelLN_ServerValidate(null, new ServerValidateEventArgs(String.Empty, false));
1
嘗試打破了另一種方法:
private bool ValidateDeliveryLastName()
{
bool is_valid = txtDeliveryLastName.Text != "";
txtDeliveryLastName.BackColor = is_valid ? System.Drawing.Color.White : System.Drawing.Color.LightPink;
return is_valid;
}
然後使用電話
protected void CustomValidatorDelLN_ServerValidate(object sender, ServerValidateEventArgs args)
{
args.IsValid = ValidateDeliveryLastName();
}
,同樣在通過另一種方法,無論這可能是。
0
你所指的方法是一個事件,它需要通過html或頁面事件連接到驗證器。例如:
<asp:CustomValidator OnServerValidate="CustomValidatorDelLN_ServerValidate" />
或
protected void Page_Load(object sender, EventArgs e)
{
CustomValidatorDelLN.ServerValidate += CustomValidatorDelLN_ServerValidate;
}
1
爲(對象發件人,ServerValidateEventArgs參數)位把這個:(這一點,新的EventArgs())
相關問題
- 1. 從另一個類調用類方法
- 2. 調用從另一個IMPL方法
- 3. 從另一個方法調用文件
- 4. 從另一個班級調用方法?
- 5. Android從另一個類調用方法
- 6. 從另一個類調用(IBAction)方法
- 7. 從onPostExecute方法調用另一個AsyncTask
- 8. 從另一個類調用UIWebView方法
- 9. 從另一個類C#調用方法
- 10. 從另一個ViewController調用方法
- 11. 從另一個類調用arraylist方法
- 12. 從另一個類調用方法
- 13. 從調用另一個方法JS
- 14. 從另一個調用基方法
- 15. 從另一個文件調用方法
- 16. 從另一個類調用類方法..
- 17. 從另一個類調用類方法?
- 18. 如何調用一個IBAction爲方法從另一個方法
- 19. 從另一個類調用另一個類和方法
- 20. Matlab的 - 從另一個方法調用MATLAB的一種方法
- 21. 無法調用EventHandler
- 22. 從同一個PHP類中的另一個方法調用一個方法
- 23. 單元測試方法從另一個方法調用C#
- 24. 從另一個靜態方法中調用靜態方法
- 25. Yii - 從另一個動作方法調用動作方法
- 26. 如何從onAuthenticationSucceeded方法調用另一個類的方法?
- 27. 從另一個自定義方法調用自定義方法
- 28. 從另一個類中的方法調用方法
- 29. 從Python 2.7中的另一個類方法調用類方法
- 30. 如何從另一個方法調用方法
調用事件來自其他方法的處理者很奇怪......你想做什麼? –
@Paolo Tedesco我有一套自定義驗證器,它被稱爲onSubmit。然而,表單具有將地址細節從一個部分複製到另一個部分的手段,並且爲了完整起見,在此期間也可以理想地調用自定義驗證器。我可以將所有的驗證複製到複製事件中,但它複製的代碼不是一件好事!我對.net很陌生,所以最好採取行動。 – ComfortablyNumb