как отображать только одно сообщение для нескольких RequiredFieldValidator
вместо отдельного сообщения для RequiredFieldValidator
?
Я хочу, как показано на следующем рисунке.
мое мнение..
как отображать только одно сообщение для нескольких RequiredFieldValidator
вместо отдельного сообщения для RequiredFieldValidator
?
Я хочу, как показано на следующем рисунке.
мое мнение..
Для этого вам нужно использовать элемент управления ValidationSummary
. См. Эту статью ValidationSummary MSDN для получения более подробной информации и примера о том, как это сделать. Эта статья содержит пример того, что вы пытаетесь выяснить точно.
установите HeaderText как-то вроде "(*)" Поля обязательны "в сводку проверки.
вы можете оставить поле сообщения об ошибке для каждого RequiredFieldValidator пустым и поместить * в текстовое поле, а затем добавить ValidationSummary, определяя его текст заголовка с сообщением об ошибке, который будет работать для вашего сценария.
<asp:RequiredFieldValidator ID="RequiredFieldValidator_overhead_name" runat="server" ControlToValidate="TextBox_overhead_name">*</asp:RequiredFieldValidator>
<asp:ValidationSummary ID="ValidationSummary_overhead_estimate" runat="server" DisplayMode="SingleParagraph" HeaderText="please insert data into fileds" />
Этот джентльмен решил здесь довольно просто: http://www.cactusoft.com/blog_40
Я вижу, что вы пытаетесь сделать, но это сложно с помощью валидаторов ASP.Net
Единственный способ, с помощью которого я могу это сделать, - полностью удалить ValidationSummary и вручную создать свой собственный, используя API-интерфейс проверки ASP.Net и JQuery i.e.
ErrorMessage = "*"
Удалить текстовое значениеif(!Page_IsValid) { $('#myCustomValidatorSummary').text('Please fill in required fields') }
Page_IsValid
- это API-интерфейс проверки ASP.Net. Установите значение false, если страница не прошла проверку.
Конечно, это предполагает, что у вас есть только необходимые валидаторы полей в вашей форме. Если есть микс, вам нужно будет проверить, не удалось ли выполнить одно или несколько из необходимых, итерации через Page_Validators
на клиенте с помощью JQuery/javascript
Честно говоря, хотя я бы этого не сделал - это слишком сложно
Я бы просто сделал это - для каждого обязательного поля validator - set
Text="*"
ErrorMessage="[Field Name] is mandatory. Please supply a value." or similar.
Вы должны использовать элемент ValidationSummary Control из ASP.NET в дополнение к ValidationSummary, вы также можете использовать свойство Group для разделения элементов управления на логические группы. См. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.validationsummary.aspx для кучи примеров.
Быстрый и простой способ: добавьте CssClass в ValidationSummary, затем стиль css, который отображает ul-элементы под этим классом: none.
Например:
<style>
.validationSummary ul {display:none}
<stlye>
...
<asp:ValidationSummary CssClass="validationSummary" ...
использовать ValidationSummary
Элемент ValidationSummary используется для отображения сводки всех ошибок проверки, произошедших на веб-странице.
Сообщение об ошибке, отображаемое в этом элементе управления, определяется свойством ErrorMessage каждого элемента управления проверкой. Если свойство ErrorMessage элемента управления проверки не установлено, для этого элемента проверки не отображается сообщение об ошибке.
http://asp-net-example.blogspot.in/2008/10/validationsummary-example-how-to-use.html
Чтобы добавить к ответу Майка Година, для отображения только одного сообщения предупреждения для нескольких проверяющих полей:
Сохраняйте индивидуальные требуемые сообщения. Добавьте сводку проверки с DisplayMode = "BulletList" и HeaderText = "Пожалуйста, предоставьте необходимую информацию выше."
Режим отображения "BulletList" создает неупорядоченный список LI внутри сводки валидации DIV, затем спрятать UL с помощью стилей - только "HeaderText" будет показывать:
#validationSummary ul {
display:none;
}
<asp:ValidationSummary
id="validationSummary"
DisplayMode="BulletList"
EnableClientScript="true"
HeaderText="Please provide the required information above."
ValidationGroup="btnSubmit"
runat="server"/>