ASP.NET: событие кнопки не срабатывает, так как происходит его блокирование другим событием в раскрывающемся списке (uxFromDate_TextChanged) - PullRequest
0 голосов
/ 23 ноября 2010

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

Конечно, если я нажму второй раз, это сработает.

Или если я сначала щелкну где-нибудь еще, чтобы произошло событие TextChange, а затем нажал кнопку в первый раз, когда он выполняется ..

Это нормально и какие есть обходные пути, если таковые имеются?

в основном событие TextChange должно срабатывать, но событие нажатия кнопки также должно срабатывать.

Все события, о которых я говорю, являются событиями ASP.NET.

вот несколько примеров событий, которые я использую - и кнопка, и раскрывающийся список

uxGetData - это кнопка, а uxToDate - это раскрывающийся список

protected void uxGetData_Click(object sender, EventArgs e)
{

    BindGrid();
    RefreshBindings();

}

protected void uxToDate_TextChanged(object sender, EventArgs e)
{
    DateTime date;
    bool valid = DateTime.TryParse(uxToDate.Text, out date);

    if (valid)
    {
        MyDate myDate= _repository.GetBetweenDate(date);
        if (myDate!= null)
            uxToMyDate.SelectedValue = Convert.ToString(myDate.item);
    }
}

1 Ответ

1 голос
/ 23 ноября 2010

Один из способов - отменить AutoPostBack раскрывающегося списка и использовать вместо него AJAX для обновления другого раскрывающегося списка.

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

Не могу придумать третий способ обойти банкомат, поэтому надеюсь, что один из вышеперечисленных подойдет.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...