JQuery 用の Facebox プラグインを使用したいのですが、希望どおりに実行するのにいくつか問題があります。facebox のコンテンツを格納する div はタグの外側に作成されるため、いくつかの Web コントロールをロードしても、サーバーに戻ってくるものはありません。
誰かが私にいくつかの指針を与えることができるこれに対処しましたか?
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 を起動できるようになります。
これを行うために facbox.js を変更しました。より良い解決策があるかもしれませんが、これは魅力のように機能します
ここで私がしたこと:
var willremove = ''; var willremovehtml = '';
willremove = data.attr('id') willremovehtml = $('#'+willremove).html() $('#'+willremove).html('')
閉じる: 関数() { $(document).trigger('close.facebox') $('#'+willremove).html(willremovehtml) willremovehtml = '' willremove = '' false を返す }
: $('#aspnetForm').append($.facebox.settings.faceboxHtml) の後でも
問題があることがわかりました。firebug を使用してページ ソースを見ると、facebox div に割り当てられている div 内のすべての html が 2 重になっている (繰り返されている) ことがわかります。
したがって、想定される一意の ID を持つこれらのコントロールはすべてページ上で 2 倍になり、ポストバックではうまくいきません。asp.net Web コントロールをフェイスボックスに配置することはお勧めできません。