2016-11-01 4 views
0

У меня есть страница с выпадающим списком (Telerik RadComboBox) для проверки.ASP.NET CustomValidator не запускает событие

Я поставил CustomValidator, чтобы убедиться, что пользователь выбрал что-то из списка. Тогда есть LinkButton, чтобы отправить выбор.

Это CustomValidator:

<asp:CustomValidator 
ID="CustomValidator1" 
runat="server" 
ClientValidationFunction="validateCombo" ValidateEmptyText="true" 
ErrorMessage="You must select an item with even value" 
ValidationGroup="defGroup"> 

это 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... 
} 

validateCombo никогда не вызывается, так как я никогда не вижу предупреждения, и даже если я попытаюсь вручную вызвать из консоли js функцию .net framework Page_ClientValidate («defGroup»), он всегда возвращает true, а предупреждение не показано.

Когда я нажимаю кнопку ссылки, он выполняет обратную передачу, а свойство Page.isValid - это правда.

Я пытаюсь остановить обратную передачу, когда пользователь нажимает кнопку ссылки, если все валидаторы группы проверки defGroup недопустимы.

+1

Он работает здесь. Возможно, есть ошибка JavaScript где-то еще на странице. Если есть, PostBack не будет предотвращен Validator. Проверьте консоль. – VDWWD

+0

уже проверено, никаких ошибок! Так что если это работает на вас, это означает, что код, который я опубликовал, правильный, он должен работать таким образом ... Это 3 часа Я застрял на нем, не видя света – Giox

+0

Удалите кеш-память браузера? –

ответ

1

Обнаруженный что также список Page_Validators на клиенте пуст (он должен содержать все asp.net валидаторы), и она имеет наставит меня на «решение»:. нетто 4,5 имеет «несовместимость» какой-то, когда вы поставите ScriptManager и вы также использовать JQuery> 1.9 ... или, может быть, я должен добавить Js LIBS с использованием ScriptResourceMapping в Global.asax

BTW, чтобы исправить , просто используйте старый стиль проверки, добавив настройку ключа в web.config:

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

это звучит дико для меня, но когда я добавил эту линию все начал работать

-1

Попытка Добавление ControlToValidate в вашем CustomValidator:

+0

'ControlToValidate' не требуется для' CustomValidator ' 'работать. – VDWWD

-2

вам не хватает Отсутствует свойство «ControlToValidate» внутри CustomValidator добавить, что или вы можете добавить ключевой параметр в файл web.config, чтобы он работал.

Смежные вопросы