Сводка проверки отображается некорректно

#asp.net #validation #web-controls

#asp.net #проверка #веб-элементы управления

Вопрос:

Кто-нибудь когда-нибудь видел это и знает ли кто-нибудь, как это исправить…

Похоже, что элемент управления сводкой проверки отображает это :

 error message
<br>
error message
<div style="display: none;" id="summaryID">
</div>
  

Поправьте меня, если я здесь ошибаюсь, но разве мои ошибки не должны быть внутри этого div … в чем причина, по которой вы можете поместить cssclass на стороне сервера управления, используя CssClass=»whatever»?

Или я что-то пропустил?

Редактировать :

Просто для проверки… это то, что я ожидаю от нее отобразить :

 <div style="display: none;" id="summaryID">
error message
<br>
error message
</div>
  

ПРАВКА 2 :

Разметка на стороне сервера, которая создает это, является …

 <asp:ValidationSummary ID="ui_ValidationSummary" runat="server" />
  


Множество элементов управления, но вот пример (не хотите все усложнять):

 <asp:TextBox ID="ui_txtClientDOB" runat="server" />
<asp:RangeValidator ID="ui_RangeValidator_DOB" runat="server" ControlToValidate="ui_txtClientDOB" ErrorMessage="DOB is not valid" MinimumValue="1900/01/01" Type="Date" ForeColor="Red">*</asp:RangeValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="ui_txtClientDOB" ErrorMessage="DOB is missing" ForeColor="Red">*</asp:RequiredFieldValidator>
  

Если у любого средства проверки в этом текстовом поле есть причина для сбоя проверки, результат, как обсуждалось, — пустой тег div с ошибкой рядом с ним.

Ответ №1:

Вероятно, в div #summaryID отображаются ошибки проверки на стороне клиента. Используйте инструмент, подобный firebug, чтобы увидеть это, поскольку вы не можете просмотреть исходный код в разметке, заполненной javascript. В противном случае отключите проверку на стороне клиента и выполните обратную передачу.

Редактировать

Я предполагаю, что вы путаете сообщение об ошибке, которое отображается, с самим элементом управления проверкой, а не внутри сводки проверки. Если вы не предоставите текстовое свойство элементам управления проверки, оно будет использовать сообщение об ошибке. Попробуйте следующее (уберите свойство text, и вы поймете, что я имею в виду):

 <asp:ValidationSummary ID="val" runat="server" CssClass="test" 
    DisplayMode="List" />

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" Text="*"></asp:RequiredFieldValidator>


<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
    ControlToValidate="TextBox2" ErrorMessage="RequiredFieldValidator" Text="*"></asp:RequiredFieldValidator>

    <asp:Button ID="Button1" runat="server" Text="Button" />
  

Комментарии:

1. Я использую firebug… и это результирующий отображаемый код… моя проблема в том, что я пытаюсь оформить сводку, и хотя она правильно оформляет сводку, содержащую div, в соответствии с выбранным мной стилем css, она не оформляет сводные сообщения, потому что они не отображаются внутри этого div… и это происходит как на стороне клиента, так и на стороне сервера.

2. допустим, textbox1 заполнен, а textbox2 — нет… тогда сводка проверки отобразит 1 «*» в соответствии с вашим образцом… Я хочу убедиться, что это * отображается внутри div, который должен содержать результаты итоговой проверки. То, что у вас есть, похоже на то, что у меня есть на сервере, принимаю, что у меня есть сообщения в моем свойстве Text для каждого элемента управления валидатора обязательных полей. сообщения, которые отображаются за пределами ожидаемого тега div на стороне клиента.

3. таким образом, ваш образец будет отображать что-то вроде… * <div style=»display: none;» id=»val»> </div>

4. Я думаю, вы неправильно понимаете сводку проверки. Поместите средства проверки требуемых полей в другое место на странице — например, в таблицу, и вы увидите, что средства проверки и сводка совершенно различны. Сводка просто принимает сообщения об ошибках и отображает их. У валидаторов есть свои собственные визуализации.

5. у меня есть таблица… с элементами управления, и с этими элементами управления связаны средства проверки… я понимаю, как работает проверка… когда выполняется проверка, они могут выдать сообщение об ошибке. Насколько я понимаю, элемент управления сводкой проверки отобразил содержимое этих сообщений в своем собственном выводе. поскольку это, похоже, то, что создается… проблема в том, что выходные данные не в ожидаемом формате.