Как бороться с множественными формами в ASP .NET - PullRequest
0 голосов
/ 03 августа 2009

Краткое описание страницы: пользователь ищет учетную запись (первая форма предназначена для поиска учетной записи), информация об учетной записи отображается ниже, и вы можете вносить изменения в эту учетную запись (вторая форма).

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

Ответы [ 2 ]

4 голосов
/ 03 августа 2009

Чтобы проверить только определенные поля формы, вы можете добавить общую ValidationGroup ко всем валидаторам, которые вы хотите проверить в этой группе, а также кнопку, которая их отправляет. Также можно установить свойство CausesValidation любой кнопки, которую вы не хотите запускать при нажатии.

Вы также можете указать кнопку по умолчанию в пределах asp:panel. Это определяет, какая кнопка срабатывает, когда вы нажимаете Enter на панели. Итак, оберните панель вокруг формы и укажите кнопку на панели следующим образом:

<asp:Panel ID="PanelForm" runat="Server" DefaultButton="ButtonSubmit">

    <!-- Form fields go here... -->

    <asp:Button ID="ButtonSubmit" runat="Server" Text="Submit" />

</asp:Panel>
2 голосов
/ 03 августа 2009

Как насчет использования атрибута CausesValidation для вашей кнопки поиска.

или вы можете использовать такой валидатор, как этот

<asp:TextBox ID="TestBox" runat="server"></asp:TextBox>
<asp:CustomValidator ErrorMessage="Not" ID="CustomValidator1" Enabled="true"    
   ControlToValidate="TestBox"
   runat="server"></asp:CustomValidator>
<asp:Button ID="myButton" CausesValidation="true" OnClick="TestClick" runat="server" />

Тогда ваша кнопка будет иметь команду onclick, подобную этой

public void TestClick(object sender, EventArgs e)
{
    if(this.TestBox.Text == "me") this.CustomValidator1.IsValid = false;
    return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...