2011-02-07 4 views
0

나는 6 개의 미리보기 이미지가 asp:imagebutton 인스턴스로 있습니다. 컨트롤은 asp:image 컨트롤이 포함 된 페이지에서 asp:updatepanel 컨트롤의 트리거로 처리됩니다.

사용자가 미리보기 이미지를 클릭하면 asp:updatepanel의 이미지 컨트롤에있는 이미지가 클릭 한 축소판 이미지로 변경됩니다.
사용자는 확대 버튼을 클릭하여 이미지를 다시 확대 할 수도 있습니다 (이 경우 lightbox 기능이 실행 됨). 이것은 잘 작동합니다.

질문
문제는 페이지가로드 그러나 사용자가 시도 후 축소판을 선택하고 때 때 확대가 작동하는 것입니다. 메서드 (lightbox)가 작동하지 않습니다.

javascript 함수 및 asp:updatepanel에서 비슷한 문제가 발생했습니다. 다른 누구도 비슷한 문제에 직면 했습니까? 그렇다면 어떻게이 문제를 해결할 수 있습니까?라이트 박스가 updatepanel + c에서 작동하지 않습니다 #

+1

를? 질문은 어디에 있습니까? –

+0

우편 번호? 그것은 분명히 당신이 생각하거나하는 일을하지 않는 것입니다 ... – bitxwise

답변

0

다음 JavaScript가 하나를 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> 
관련 문제