3

JQuery 用の Facebox プラグインを使用したいのですが、希望どおりに実行するのにいくつか問題があります。facebox のコンテンツを格納する div はタグの外側に作成されるため、いくつかの Web コントロールをロードしても、サーバーに戻ってくるものはありません。

誰かが私にいくつかの指針を与えることができるこれに対処しましたか?

4

4 に答える 4

3

facebox.js をいじってみると、関数 init(settings) でこの行に出くわしました...

$('body').append($.facebox.settings.faceboxHtml)

私はそれを...に変更しました

$('#aspnetForm').append($.facebox.settings.faceboxHtml)

フォームタグに読み込まれますが、副作用があるかどうかはまだわかりません

于 2008-10-02T13:39:58.850 に答える
1

このコードを使用して、PostBack イベントを登録できます。

btn.OnClientClick = string.Format("{0}; $.facebox.close();",ClientScript.GetPostBackEventReference(btn, null));

これにより、ボタンが PostBack を起動できるようになります。

于 2008-12-28T00:24:50.560 に答える
0

これを行うために facbox.js を変更しました。より良い解決策があるかもしれませんが、これは魅力のように機能します

ここで私がしたこと:

  1. facbox.js の '(function($)' の前に 2 行追加します。
var willremove = '';
var willremovehtml = '';
  1. 「reveal: function(data, klass) {」を見つけて、関数の最初の行の前にこの行を追加します。
willremove = data.attr('id')
willremovehtml = $('#'+willremove).html()
$('#'+willremove).html('')
  1. 「close: function() {」を見つけて、以下のようにします。
閉じる: 関数() {
$(document).trigger('close.facebox')
$('#'+willremove).html(willremovehtml)
willremovehtml = ''
willremove = ''
false を返す
}
于 2010-04-22T17:28:46.730 に答える
0

: $('#aspnetForm').append($.facebox.settings.faceboxHtml) の後でも

問題があることがわかりました。firebug を使用してページ ソースを見ると、facebox div に割り当てられている div 内のすべての html が 2 重になっている (繰り返されている) ことがわかります。

したがって、想定される一意の ID を持つこれらのコントロールはすべてページ上で 2 倍になり、ポストバックではうまくいきません。asp.net Web コントロールをフェイスボックスに配置することはお勧めできません。

于 2010-04-14T18:28:10.443 に答える