2011-02-07 19 views
0

私はasp:imagebuttonという6つのサムネイル画像を持っています。これらは、asp:imageコントロールを含むページのasp:updatepanelコントロールのトリガーとして扱われます。

ユーザーがサムネイルをクリックすると、asp:updatepanelの画像コントロールの画像がクリックされたサムネイル画像に変わります。
ユーザは、拡大ボタンをクリックすることによって画像を再び拡大することもできる(これはlightbox機能を実行する)。これは正常に動作します。問題は拡大が、ページのロード時に、ユーザは、サムネイルを選択したときしかし、働き、その後しようということである

質問
。メソッド(lightbox)は機能しません。

javascript関数とasp:updatepanelで同様の問題が発生しました。他の誰かが同様の問題に直面していますか?もしそうなら、どうすればこの問題を解決できますか?ライトボックスはupdatepanel + cで動作していません。

+1

それが言う何?どこに質問がありますか? –

+0

郵便番号?明らかにあなたが思っていることややりたいことをやっていないのです... – bitxwise

答えて

0

次のJavaScriptは、1つをdefalutた、それはasp:UpdatePanel

<script type="text/javascript"> 
    $(function() 
    { 
    $('#gallery a').lightBox(); 
    }); 
    </script> 

せずに正常に動作しますが、そのページのロードに関数を呼び出す必要があるasp:UpdatePanelで動作していない、それが正常に動作します。

<script type="text/javascript"> 
    function pageLoad(sender, args) 
    { 
    $('#gallery a').lightBox(); 
    } 
</script> 

ありがとうございました。

0

ページが最初に読み込まれたときにのみ、A $関数(DOM対応関数)が実行されます。 これ以上のAJAX呼び出し(部分ロード/レンダリング)は、DOM準備完了機能を起動しません。それは理由です、あなたはそれを働かせることができませんでした。

この場合、最初にページが読み込まれたときに、アンカーリンク(ボタン)がlighboxの動作とバインドされます。そう、それは動作します。次回、更新パネル(部分的なレンダリング)を更新すると、ボタンはライトボックスに再びバインドされません。このバインディングが達成されない限り、表示されません。

通常、スクリプトコントロールは、コントロールがロードされるたびにイベントを発生させるために使用されます。 関連オブジェクトの分離についてここで気にしなければ、pageLoadのような解決策は問題ありません。

0

は解決:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
<script src="../slimbox-2.05/slimbox2.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    function pageLoad() { 
     jQuery(function ($) { 
      $("a[rel^='lightbox']").slimbox({/* Put custom options here */ 
      }, null, function (el) { 
       return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel)); 
      }); 
     }); 
    } 
</script> 
関連する問題