У меня есть JQuery UI Dialog отлично работает на моей странице ASP.NET:
jQuery(function() {
jQuery("#dialog").dialog({
draggable: true,
resizable: true,
show: 'Transfer',
hide: 'Transfer',
width: 320,
autoOpen: false,
minHeight: 10,
minwidth: 10
});
});
jQuery(document).ready(function() {
jQuery("#button_id").click(function(e) {
jQuery('#dialog').dialog('option', 'position', [e.pageX + 10, e.pageY + 10]);
jQuery('#dialog').dialog('open');
});
});
Мой div:
<div id="dialog" style="text-align: left;display: none;">
<asp:Button ID="btnButton" runat="server" Text="Button" onclick="btnButton_Click" />
</div>
Но btnButton_Click никогда не вызывается ... Как я могу решить это?
Дополнительная информация: я добавил этот код для перемещения div в форму:
jQuery("#dialog").parent().appendTo(jQuery("form:first"));
Но все же безуспешно ...
Ответы:
Вы близки к решению, просто получаете не тот объект. Должно быть так:
источник
Использование этого кода решило мою проблему, и оно работало во всех браузерах, Internet Explorer 7, Firefox 3 и Google Chrome. Я начинаю любить JQuery ... Это крутой фреймворк.
Я также проверил с частичным рендером, именно то, что я искал. Большой!
источник
FWIW, форма: первая техника не работает для меня.
Тем не менее, техника в этой статье блога сделала:
http://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.html
В частности, добавив это в объявление диалога:
источник
Имейте в виду, что в jQuery UI v1.10 есть дополнительная настройка. Был добавлен параметр appendTo для решения обходного пути ASP.NET, который вы используете для повторного добавления элемента в форму.
Пытаться:
источник
кен ответ «s выше сделал трюк для меня. Проблема с принятым ответом состоит в том, что он работает, только если у вас есть один модал на странице. Если у вас есть несколько модальностей, вам нужно сделать это встроенным в параметре «open» при инициализации диалога, а не по факту.
Если вы сделаете то, что говорит первый принятый ответ, с несколькими модалами, вы получите только последний модал на странице, работающий должным образом, но не все.
источник
Прежде всего потому, что jQuery перемещает диалог за пределы тегов формы с помощью DOM . Переместите его обратно в теги формы, и оно должно работать нормально. Вы можете убедиться в этом, проверив элемент в Firefox.
источник
Я не хотел обходить эту проблему для каждого диалога в моем проекте, поэтому я создал простой плагин jQuery. Этот плагин предназначен только для открытия новых диалогов и помещения их в форму ASP.NET :
Таким образом, чтобы использовать плагин, вы сначала загружаете пользовательский интерфейс jQuery, а затем плагин. Затем вы можете сделать что-то вроде следующего:
Чтобы быть понятным, этот плагин предполагает, что вы готовы показать диалоговое окно, когда вы его вызываете.
источник
Я знаю, что это старый вопрос, но для тех, у кого такая же проблема, есть более новое и более простое решение: в jQuery UI 1.10.0 была введена опция "appendTo"
http://api.jqueryui.com/dialog/#option-appendTo
источник
Фантастика! Это решило мою проблему с ASP: событие Button не запускалось внутри модального jQuery. Обратите внимание: использование модального интерфейса jQuery со следующим разрешает запуск события кнопки:
Следующая строка является ключом, чтобы это заработало!
источник
Я просто добавил следующую строку после того, как вы создали диалог:
источник
Это было самое ясное решение для меня
Весь контент внутри
dlg2
будет доступен для вставки в вашу базу данных. Не забудьте изменитьdialog
переменную, чтобы она соответствовала вашей.источник
С ASP.NET просто используйте
UseSubmitBehavior="false"
в вашей кнопке ASP.NET:Ссылка: свойство Button.UseSubmitBehavior
источник
Решение от Роберта Маклина с наибольшим количеством голосов правильное на 99%. Но единственное дополнение, которое может потребоваться, как и я, это когда вам нужно открыть это диалоговое окно jQuery, не забудьте добавить его к родителю. Как ниже:
var dlg = $('#questionPopup').dialog( 'open'); dlg.parent().appendTo($("form:first"));
источник
Используйте эту строку, чтобы заставить это работать, используя опцию modal: true.
источник
$('#dialog').parent().appendTo($("form:first"))
Решение работает отлично в IE 9. Но в IE 8 это делает диалог появляется и исчезает сразу. Вы не сможете увидеть это, если не разместите несколько предупреждений, поэтому кажется, что диалог никогда не появляется. Я провожу одно утро в поисках решения, которое работает на обеих версиях, и единственное решение, которое работает на обеих версиях 8 и 9:Надеюсь, что это помогает другим, которые борются с той же проблемой
источник
UseSubmitBehavior
свойство Button наfalse
значение. Таким образом , вам не нужныappend
илиprepend
звонки.Переместите диалоговое окно в правильном направлении, но вы должны сделать это только с помощью кнопки, открывающей диалоговое окно. Вот некоторый дополнительный код в примере jQuery UI:
Добавьте свой
asp:button
внутри диалога, и он работает хорошо.Примечание: вы должны изменить <button> на <input type = button>, чтобы предотвратить обратную передачу после того, как вы нажмете кнопку «создать пользователя».
источник
Точное решение есть;
источник