ControlToValidate срабатывает на все клики: я хочу, чтобы он срабатывал только при нажатии кнопки «Отправить» - PullRequest
0 голосов
/ 18 января 2011

У меня есть текстовое поле, которое проверено, чтобы убедиться, что есть текстовое содержимое для страницы загрузки файла.

Моя проблема в том, что когда страница впервые загружена и вы все равно нажимаете, где на странице, ControlToValidate запускается немедленно, это проблема, потому что я хочу, чтобы страница проверяла текстовое поле только при нажатии кнопки загрузки.кнопка.

Вы попадаете в ловушку на странице «Загрузить файл», пока не введете какой-нибудь случайный текст в текстовое поле, даже если вы нажмете ссылку, чтобы попасть куда-то на сайт (т. Е. Логотип, чтобы вернуться на главную страницу).

Вот мой соответствующий фрагмент кода:

 <asp:Label runat="server">Name</asp:Label>:
<br />
<asp:TextBox runat="server" ID="txtName"></asp:TextBox><asp:RequiredFieldValidator
    runat="server" ID="txtNameRequired" Display="Dynamic" ControlToValidate="txtName"
    Text="Name is required." CssClass="errorText" /><br />

<asp:Button runat="server" ID="btnUpload" Text="Upload" OnClick="btnUpload_Click" />
</asp:Panel> 

Итак, у меня есть пара идей, но я не был уверен, как их реализовать:

1) найти свойство, котороесвяжет ControlToValidate исключительно с нажатием кнопки загрузки.

или

2) Настройте ControlToValidate так, чтобы он вызывался только на PostBacks

Я просто не уверенс чего начать и не смогли найти какие-либо свойства, которые конкретно это делают!

Большое спасибо за потраченное время!

Ответы [ 2 ]

1 голос
/ 18 января 2011

Установите для свойства ValidationGroup кнопки и элементы управления одинаковые значения.

1 голос
/ 18 января 2011

Установите для CausesValidation значение false для других элементов управления отправкой.

<asp:Button CausesValidation="false" Text="Cancel" Name="CancelButton" />
...