2015-01-05 7 views
0

Использование ASP-TextBox в html-таблице (td) в FormView EditItemTemplate, в ASP-панели, на панели AJAX, на странице «Содержимое» и в пределах мастер-страницы, ValidationSummary показывает неправильный ErrorMessage при проверке текстового поля кнопкой SAVE.Почему ErrorMessage не отображается правильно

ValSummary показывает "Пробег Введенный меньше, чем '<% = txtMileageRangeValidator.MinimumValue%>' миль".

И НЕ «Пробег Введенный менее чем 88123 миль»

Разметка для текстового поля и валидатор следующим образом:

<asp:TextBox ID="txtMileage" runat="server" Text='<%# Bind("Mileage") %>' 
    CssClass="ucIsRequired" 
    MaxLength="6" 
    AutoPostBack="True" OnTextChanged="txtMileage_TextChanged" 
/> 
<asp:RangeValidator ID="txtMileageRangeValidator" runat="server" 
    ControlToValidate="txtMileage" 
    Enabled="true" 
    Display="None" 
    MinimumValue='<%# Eval("aMileagePrev", "{0:D}")%>' 
    MaximumValue="999999" 
    SetFocusOnError="false" 
    Type="Integer" 
    ValidationGroup="valgrpDetails" 
    ErrorMessage="Mileage entered is less than '<%= txtMileageRangeValidator.MinimumValue %>' miles" 
    /> 

Однако, когда ошибка появляется в ValidationSummary, оказывается точно как указано выше - он не заменяет значение MinimumValue в тексте ошибки.

Что я делаю неправильно? Спасибо.

ответ

0

Если отключены, RangeValidators не проверки на стороне клиента, т.е. без обратной передачи, поэтому на стороне сервера встроенного скрипт не будет повторно вынесен

Если собираешься сбросить мин значение на событиях текстового поля, то вы можете установить ErrororMessage, как вы делаете для MinimumValue, но с измененным форматом строки

ErrorMessage='<%# Eval("aMileagePrev", "Mileage entered is less than {0:D} miles") %>' 

но что-то другое теперь, когда я читал ближе. Проверка правильности диапазона предназначена для проверки того, что значение находится между значениями min/max. Вы делаете предположение, что значение никогда не будет больше, чем maxValue. Если это всегда так, то вы бы лучше служили с CompareValidator с Type набором для Integer и Operator набора для LessThan

+0

Отличного ответа !!!! отлично работает ... Спасибо. Поэтому значение max-length = 6 не может превышать 999999. Я также благодарю вас за ваше предложение о CompareValidator. Может быть, вы можете помочь с этим вопросом ??? [Ссылка] http://stackoverflow.com/questions/27650321/user-control-retains-focus-incorrectly-after-textchanged-postback-when-uc-is-con –