2011-12-29 2 views
-1

가 나는 jQuery 코드를 가지고 난 내 중계기의 모든 항목에 대한이 코드를 실행해야 ItemCommand실행 jQuery 코드는

내 중계기에서

난 버튼에서을 클릭 할 때 버튼 및 레이블 는 내가 원하는 것은이 Repeater는 label 매개 변수를 jquery 함수에 보내고이를 실행합니다. 내 Jquery 코드는 아래와 같습니다. 이제 오류가 발생합니다. imgBtnCopy는 리피터 안에 있기 때문에 imgBtnCopy라는 이름의 버튼이 없다고 말합니다. 그래서 내가 중계기의 itemcommand에서이 코드를 실행할 수있는

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#' + '<%= imgBtnCopy.ClientID %>').zclip({ 
      path: 'ZeroClipboard.swf', 
      copy: function() { 
       return $('#' + '<%= lblFile.ClientID %>').val(); 
      }, 
      afterCopy: function() { 

      } 
     }); 

    }); 

</script> 

답변

1

ItemCommand는 중계기 객체의 서버 측 이벤트입니다. JQuery는 클라이언트 측 코드이기 때문에 약간의 불일치가 있습니다.

또한 렌더링 된 HTML의 원본을 보면 오류 메시지가 정확한 것을 알 수 있습니다. ID가 인 개체가 없습니다. imgBtnCopy. 거기 imgBtnCopy으로 부분으로의 id가 될 것입니다. ASP.NET 프레임 워크는 <ItemTemplate>의 각 컨트롤에 고유 한 ID를 할당합니다. 그렇지 않으면 동일한 ID를 가진 여러 컨트롤로 끝납니다. 좋은 일이 아닙니다.

그렇다면 위의 정보를 고려하여 접근 방식을 변경해야합니다.

은 자신의 ID의 imgBtnCopy 등 일부 포함 된 모든 컨트롤을 선택과 같은 JQuery와 선택기를 사용하십시오

[id*=imgBtnCopy] 

당신이 문자열을 포함하는 ID를 가진 모든 요소를 ​​선택하는 것이 방법을 imgBtnCopy. * =는 contains에 대한 JQuery 연산자입니다. 그런 다음 각 단추의 click 이벤트에 JQuery를 연결합니다.

관련 문제