Я хочу использовать плагин Facebox для JQuery, но у меня есть несколько проблем с его запуском так, как я хочу. Div, в котором находится содержимое лицевого окна, создается вне тега, поэтому, хотя я загружаю некоторые веб-элементы управления, ни один из них не отправляется обратно на сервер.
Кто-нибудь имел дело с этим, что может дать мне несколько указателей?
давай, чувак, тебе нужно сделать ссылку на xkcd. боже;)





ковыряясь в facebox.js, я наткнулся на эту строчку в функции init (settings) ...
$('body').append($.facebox.settings.faceboxHtml)
Я изменил это на ...
$('#aspnetForm').append($.facebox.settings.faceboxHtml)
и он загружается в тег формы, пока не уверен, есть ли какие-либо побочные эффекты
Вы можете использовать этот код для регистрации события PostBack:
btn.OnClientClick = string.Format("{0}; $.facebox.close();",ClientScript.GetPostBackEventReference(btn, null));
это позволит кнопке запустить PostBack.
Даже после: $ ('# aspnetForm'). добавить ($. facebox.settings.faceboxHtml)
изменить я счел это проблематичным. Когда вы смотрите на источник страницы с помощью firebug, вы видите, что весь html в div, назначенный для div facebox, удваивается (повторяется).
Таким образом, все эти элементы управления с предполагаемыми уникальными идентификаторами дублируются на странице, что не может быть хорошим при обратной передаче, я решил, что размещение веб-элементов управления asp.net в лицевом окне - не лучшая идея.
Для этого я модифицировал facbox.js. Может быть, есть лучшее решение, но это работает как шарм
Вот что я сделал:
var willremove = ''; var willremovehtml = '';
willremove = data.attr('id')
willremovehtml = $('#'+willremove).html()
$('#'+willremove).html('')close: function() {
$(document).trigger('close.facebox')
$('#'+willremove).html(willremovehtml)
willremovehtml = ''
willremove = ''
return false
}
Конечно, держи! * объект * другой объект Извините, я знаю, что это было действительно неубедительно, но, тем не менее, нужно пошутить.