2012-07-28 3 views
3

저는 지금 당장이 작업을 해왔지만 답변을 찾을 수없는 것 같습니다 ... 오늘 Google이 정말 도움이되지 않습니다!검사기 컨트롤에 항상 Display = "Dynamic"이 있어야합니다.

많은 유효성 검사 형식을 사용하는 C# 웹 사이트에서 작업하고 있습니다. 손으로 타이핑해야하는 큰 폼 (아무런 문제 없음).

문제점은 항상 ValidationControls에 Display Property를 동적으로 설정하기를 원합니다.

나는 해결책을 찾았지만 이것이 최선의 해결책이라고 확신하지는 않습니다.

public class BaseValidatorControlAdapter : ControlAdapter 
{ 
    protected override void Render(System.Web.UI.HtmlTextWriter writer) 
    { 
     System.Web.UI.WebControls.BaseValidator _control = (System.Web.UI.WebControls.BaseValidator)this.Control; 
     _control.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; 
     base.Render(writer); 
    } 
} 

이 다음이

<browsers> 
    <browser refID="Default"> 
     <controlAdapters> 
      <adapter controlType="System.Web.UI.WebControls.BaseValidator" 
        adapterType="BaseValidatorControlAdapter" /> 
     </controlAdapters> 
    </browser> 
</browsers> 

내 질문처럼 보이는 App_Browser을 추가하여 triggerd된다

현재 나는 유효성 검사기 이런 유형 "동적"를 표시 설정하는 BaseValidatorControlAdapter이 너 때문이다. 모든 Validator 컨트롤에 대해 Display의 기본값을 설정할 수 있습니까? 현재의 솔루션이 현재 존재하는 것보다 우선 적용되기 때문에이를 바꿀 방법이 없습니다. 그러므로 상황에 따라 디스플레이 옵션에서 동적 인 다른 것을 필요로 할 때 그것을위한 해결책이 없습니다.

저는 이보다 더 좋은 해결책이 있다는 것을 거의 확신합니다.

아무쪼록 감사드립니다.

편집 8 월 2 : 2012 년

마침내 나는 모든 이러한 컨트롤을 추가 기본 asp.net 컨트롤을 무시하고

public controlname() 
    : base() 
{ 
    this.Display = "Dynamic"; 
} 

에 다음 생성자를 추가 할 수있는 솔루션으로 정착

네임 스페이스는 이제 할 수 있습니다

<validator:RequiredField ID="RqrdFld_x" runat="server" Display="Static" /> 

기본적으로 내 컨트롤 정의의 기본값을 재정의하면 d 기본 컨트롤을 재정의합니다. 생성자에서 Dynamic의 값을 표시합니다. 당신이 다음 Page_Init 경우에 이러한 코드를 사용하여 수행 할 수있는

답변

2

link은 문제를 해결하는 데 도움이됩니다.

스킨 파일을 사용하여 .NET 사이트의 웹 컨트롤에 대한 기본값을 설정할 수 있습니다.

내 App_Theme 폴더에 DefaultTheme라는 폴더를 추가하고 Skin.skin 전화에 다음과 같은 내용으로, 파일을 추가 한 : 숫자에 대한 기본 설정이 저를 ..allowing

<asp:RequiredFieldValidator runat="server" Display="Dynamic" /> 
<asp:CompareValidator runat="server" Display="Dynamic" /> 
<asp:RegularExpressionValidator runat="server" Display="Dynamic" /> 

내 웹 사이트에서 다른 유효성 검사기 (또는 다른 컨트롤)를 사용할 수 있습니다.

+0

내가 원하는 것을 정확하게 들려 주지만, 내 자신의 솔루션을 이미 가지고 있는데 좀 더 잘 보이기 때문에 살펴볼 것이다. 그것이 내가 원하는 해결책이라면 당신은 절대적으로 나의 투표를 답으로 얻을 것입니다! 내 컴퓨터에 집에 있어야합니다. D – bkwint

2

: 그것은 모든 컨트롤을 발견하고 그에 따라 Display 속성을 설정합니다

foreach(Control control in Page.Controls){ 
    if(control is System.Web.UI.WebControls.BaseValidator) 
    { 
    control.Display = "Static"; 
    } 
} 

.

+0

이것은 내가 원하는 것을하지 않습니다. 자동으로 동적 인 모든 필드 유효성 검사기의 내 표시 유형을 갖고 싶습니다. 각 validator 컨트롤에 대해 설정하지 않아도됩니다. 당신의 솔루션은 특정 밸리데이터 컨트롤을 위해 그것을 설정하는 것입니다. 모든 유효성 검사 컨트롤이 자동으로 동적으로 설정되어야합니다 ... 이것이 내 코드의 기능입니다. 하지만 더 나은 해결책이 있는지 궁금 하네. – bkwint

+0

제 대답을 확인하십시오. 나는 그것을 새롭게했다. – Tarik

+0

그것은 솔루션이지만 실제로는 광범위하게 프로젝트를 진행하지는 못했습니다. 게다가 이것이 효과적인 지 아닌지에 대해 정말로 의문의 여지가 있습니다. 각 컨트롤을 반복하기 때문입니다. 내 솔루션은 validatorcontrols에서만 작동합니다. 비록 내가 controladapter를 사용하는 것이 내 서버에 무거운 것인지 정말 모르겠지만. – bkwint

관련 문제