3種類のBaseValidatorで同じ修正を行いました。重複したコードを削除する方法を探します。同じ修正を加えたカスタムコントロールバリデータ
私はあなたがこれらの正確なクラスを持っている同じ問題に遭遇したのRequiredFieldValidator、RegularExpressionValidatorとのCustomValidatorのために同じコード
Public Class CustomValidator
Inherits System.Web.UI.WebControls.CustomValidator
Protected Overrides Sub Render(writer As HtmlTextWriter)
Try
If Not String.IsNullOrWhiteSpace(ControlToValidate) Then
Dim ctv As Control = Me.FindControl(ControlToValidate)
writer.AddAttribute("for", ctv.ClientID)
End If
Catch
End Try
MyBase.Render(writer)
End Sub
Protected Overrides ReadOnly Property TagKey() As System.Web.UI.HtmlTextWriterTag
Get
Return HtmlTextWriterTag.Label
End Get
End Property
End Class
繰り返しコードをユーティリティクラスに抽出し、3つの場所から呼び出します。 – Bert
私はこの状況でそれを行う方法がわかりません。多分私はレンダリング機能の大きな部分(trycatch)を置くことができますが、それは非常に強力な変更ではありません。私は多重継承のようなパレードをもっと探していました。 – forX