2016-11-01 12 views
0

유효성을 검사 할 드롭 다운 목록 (Telerik RadComboBox) 컨트롤이있는 페이지가 있습니다.ASP.NET CustomValidator가 이벤트를 실행하지 않음

사용자가 목록에서 항목을 선택했는지 확인하기 위해 CustomValidator를 넣었습니다. 그런 다음 선택 항목을 제출할 LinkButton이 있습니다. 내가 테스트를 위해 사용하고 클라이언트 측 기능 여기

<asp:LinkButton ID="LnkInsertOrder" runat="server" Text="Inserisci Ordine" OnClick="LnkInsertOrder_Click" CausesValidation="true" ValidationGroup="defGroup" CssClass="btn btn-lg btn-info"> </asp:LinkButton> 

된다 :

function validateCombo(source, args) { 
      alert('validateCombo'); //is never shown! 
      args.IsValid = false; //fake validation... 
} 

<asp:CustomValidator 
ID="CustomValidator1" 
runat="server" 
ClientValidationFunction="validateCombo" ValidateEmptyText="true" 
ErrorMessage="You must select an item with even value" 
ValidationGroup="defGroup"> 
가하는 LinkButton입니다 :

은 직접 CustomValidator입니다

validateCombo은 결코 경고가 표시되지 않으므로 js 콘솔에서 수동으로 호출하려고해도 .net 프레임 워크 함수 Page_ClientValidate ("defGroup")은 항상 true를 반환하고 경고는 표시되지 않습니다.

링크 버튼을 누르면 포스트 백이 수행되고 Page.isValid 속성이 true입니다.

defGroup 유효성 검사 그룹의 모든 유효성 검사기가 유효하지 않은 경우 사용자가 링크 버튼을 누르면 포스트 백을 중지하려고합니다.

+1

여기에서 작동합니다. 어쩌면 페이지의 다른 부분에 JavaScript 오류가있을 수 있습니다. 존재하는 경우, 포스트 백은 검사기에 의해 방지되지 않습니다. 콘솔을 확인하십시오. – VDWWD

+0

이미 확인했지만 오류는 없습니다. 그래서 그것이 작동한다면, 내가 올린 코드가 정확하다는 것을 의미합니다,이 방법으로 작동해야합니다 ... 3 시간입니다. 나는 빛을 보지 않고 붙어 있습니다. – Giox

+0

브라우저 캐시 메모리를 삭제 하시겠습니까? –

답변

1

또한 클라이언트에 Page_Validators 목록이 비어있는 것을 발견했다 (이것은 모든 asp.net 유효성 검사기를 포함한다), 그리고 그것은 "솔루션"에 나를 인도 있습니다. 당신이 에 ScriptManager 넣을 때 그물 4.5는 어떤 종류의 '호환성'을 가지고 있으며, 또한 jQuery를 사용> 1.9 ... 또는 어쩌면 내가 그것을 해결하기 위해 BTW Global.asax에

을 ScriptResourceMapping를 사용하여 JS libs와 추가해야 web.config의 키 설정을 추가하는 이전 유효성 검사 스타일을 사용하기 만하면됩니다.

<appSettings> 
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> 
</appSettings> 

가 나에게 미친 소리,하지만 추가 한 경우이 라인의 모든 것을 추가 직접 CustomValidator 안에 당신이 누락 누락 "ControlToValidate"속성을

-1

하여 직접 CustomValidator에 ControlToValidate 추가 시도 :

+0

'ControlToValidate'는'CustomValidator '일해야합니다. – VDWWD

-2

일을하기 시작했다 또는에서 키 설정을 추가 할 수 있습니다 web.config 파일을 사용하여 작동되게합니다.