Кнопка не выполняет обратную передачу в диалоге jQuery внутри UC

StackOverflow https://stackoverflow.com/questions/1410300

Вопрос

Я разрабатываю пользовательский элемент управления, и у него есть кнопка asp.net в диалоге jQuery, но когда я нажимаю кнопку, ничего не происходит, я имею в виду, что она не вызывает событие нажатия кнопки на стороне сервера, я пытался

dlg.parent().appendTo(jQuery("form:first")); 

но мне это тоже не помогло, возможно ли добиться этого внутри asp.net UserControl? Также мне интересно, могу ли я использовать UpdatePanel внутри диалога или нет?

Это было полезно?

Решение

Вы можете сделать кнопку диалоговой кнопкой и поместить кнопку asp.net на страницу с идентификатором HiddenButton и обернуть ее в элемент div в стиле display: none;

Так что кнопка не видна. (Не должно быть Visible = " false " поэтому кнопка отображается)

В диалоговом окне javascript добавьте кнопку, которая имеет эффект нажатия скрытой кнопки

  jQuery("#dialog").dialog({
        buttons: {
            'ButtonText': function() {
                //save the session
           __doPostBack('<%# HiddenButton.ClientID %>', '')
                jQuery(this).dialog('close');
            }
        }
    });

и добавьте обработчик щелчка asp к скрытой кнопке

<div style="display:none;">
    <asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>

Событие Click на стороне сервера будет срабатывать при нажатии кнопки диалога

Надеюсь, это поможет мне постоянно использовать этот шаблон

Другие советы

Я подозреваю, что это может быть связано с тем, что ASP.NET не может найти кнопку в форме.

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

Живые события в jQuery

В результате вы получите что-то подобное в вашей функции document.ready:


$("#btn").live("click", function(){
  // Do something
});


$("#dialog").dialog({
    ... 
}

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top