CustomValidator
의 렌더링 방식을 변경하려면 WebControlAdapter을 사용하십시오. RenderBeginTag
및 RenderEndTag
메서드를 재정 의하여 기본 범위 주위에서 div를 렌더링해야합니다.
public class CustomValidatorAdapter : WebControlAdapter
{
protected override void RenderBeginTag(HtmlTextWriter writer)
{
writer.RenderBeginTag("div");
base.RenderBeginTag(writer);
}
protected override void RenderEndTag(HtmlTextWriter writer)
{
base.RenderEndTag(writer);
writer.RenderEndTag(); // this will close div
}
}
이 어댑터를 응용 프로그램에 연결하려면 두 가지 옵션이 있습니다. 먼저 프로그램 페이지 생성자에 그것을 할 수 있습니다 :
프로젝트에 새 Browser File
을 추가
var adapters = Context.Request.Browser.Adapters;
var customValidatorType = typeof(CustomValidator).AssemblyQualifiedName;
var adapterType = typeof(CustomValidatorAdapter).AssemblyQualifiedName;
if (!adapters.Contains(customValidatorType))
{
adapters.Add(customValidatorType, adapterType);
}
두 번째 옵션은 .browser
파일을 사용하는 것입니다. 이 파일은 App_Browsers
폴더에 있습니다. 그런 다음 선언 내용을 대체 : 당신은 BaseValidator
또는 CustomValidator
클래스에서 상속 Render
메소드를 오버라이드 (override) 한 다음 원하는 마크 업을 생성 할 수 있습니다
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.CustomValidator"
adapterType="<your namespace>.CustomValidatorAdapter" />
</controlAdapters>
</browser>
</browsers>
정확히 무엇을 의미합니까? Validator에 클래스 ('CssClass')를 적용 할 수 있습니다. 또한 RegularExpressionValidator는 이메일에 유용합니다. – MikeSmithDev
@MikeSmithDev 이제'CssClass'에 대해 설명 하겠지만,''대신'div'와 다른 html 요소를 사용해야합니다. –