Событие с подтверждением потеряно после того, как обратная передача поднята для другого контроля

У меня есть этот сценарий

TextBox с AutoPostBack = true и серверным кодом для управления текстовыми изменениями.

Кнопка с подтверждением на стороне сервера и кодом для управления. btnSend.Attributes.Add ("onClick", "return confirm ('Подтвердить сообщение')"); ....

Все внутри UpdatePanel

Когда пользователь пишет в TextBox и, не покидая фокуса текстового поля, нажмите кнопку, появится подтверждение, а после inputTextAnswer_TextChanged вызывается и выполняется. Затем страница обработала PostBack, поэтому, если пользователь нажимает «ОК» при подтверждении, ничего не выполняется. Пользователь должен щелкнуть еще раз, чтобы действительно выполнить код кнопки.

Есть ли способ запустить код inputTextAnswer_TextChanged (должен быть выполнен первым), а затем код кнопки. Важно: не всегда следует выполнять один за другим, просто когда пользователь заполняет поле текстового поля, а затем нажимает кнопку


person user1480333    schedule 25.06.2012    source источник


Ответы (1)


Хорошо, если у кого-то такая же проблема, мое решение. Вместо того, чтобы оставлять подтверждение, связанное с возвратом к кнопке, просто выполните обратную передачу вручную с помощью javascript. Затем выполняются события изменения текстового поля, и когда пользователь нажимает «ОК», мы вызываем обратную передачу и выполнение кода кнопки.

этот фрагмент кода на стороне сервера

btnSend.Attributes.Add("onClick", "confirmSend();");

это на aspx

<script>
function confirmSend() {
    var agree = confirm('confirm message');
    if (agree) {
         __doPostBack('btnSend', '');
   }
  }
</script>
person user1480333    schedule 27.06.2012