2012-05-15 3 views
0

마스터 페이지를 사용하지 않고 aspx 페이지에서 다음 Jquery를 실행했습니다. 마크 업은 다음과 같습니다. 그것은 잘 작동합니다. 여기 aspx 대 HTML에서 Jquery

<body> 
<form id="form1" runat="server"> 
<div> 

    <asp:CheckBox ID="chkAll" runat="server" Text="Check All" /><br /> 

    <asp:CheckBoxList ID="cbList" runat="server"> 
    </asp:CheckBoxList> 

</div> 
</form> 

여기서 스크립트

<script src="Scripts/jquery-1.7.2.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#chkAll').click(
     function() { 
      $("INPUT[type='checkbox']").attr('checked', $('#chkAll').is(':checked')); 
     }); 
    });  

</script> 

이다 내가 마스터 페이지를 사용하여 생성 된 페이지의 태그이다. 마스터 페이지에는 HeadContent 자리 표시 자의 머리글에 jquery 파일에 대한 참조 만 있습니다. 말할 필요도없이 마스터 페이지 시나리오에서 작동하지 않습니다. 왜 질문

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"> 
    The identical script from above is placed here 

</asp:Content> 

입니다 그리고 여기에 자리 콘텐츠 마크 업

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 

<div> 

    <asp:CheckBox ID="chkAll" runat="server" Text="Check All" /><br /> 

    <asp:CheckBoxList ID="cbList" runat="server"> 
    </asp:CheckBoxList> 

</div> 
</asp:Content> 

답변

0

컨트롤에 ClientIDMode="Static"을 사용하면 지정한 이름으로 참조 할 수 있습니다.

<asp:CheckBox ID="chkAll" runat="server" Text="Check All" ClientIDMode="Static" /> 
0

당신은 그들에 runat="server"이 때 웹 양식 컨트롤에주는 ID 값을 사용할 수 있습니다. ID는 ctl1_chkAll과 같이 변경되며 스크립트가 실패합니다. 다음과 같이 클라이언트 ID를 참조해야합니다.

$("#<%= chkAll.ClientID %>") 

... 이는 사람들이 웹폼에서 멀어지고있는 이유입니다.

0

마스터 페이지를 사용하면 페이지에 렌더링 된 컨트롤 ID가 달라지기 때문입니다. 두 가지 경우 모두에서 코드가 작동하는지 확인하려면 다음과 같이해야합니다.

$("[id$='chkAll']").click() { function() { 
    $("INPUT[type='checkbox']").attr("checked", $(this).attr("checked")); 
}); 

희망이 있습니다!

+0

Bhamlin, 브렌든과 프라 빈은 상단에있는 페이지가 완벽하게 잘 작동 언급으로 문제가되지 않습니다 모든 3 개 솔루션은 – dinotom

0

jQuery 스크립트의 상대 경로에 문제가있는 것처럼 들리지만 스크립트가로드되는지 확인하려면 웹 디버거 (FireBug, IE 툴바 등)를 사용해야합니다. Scripts 폴더가 사이트의 루트에 있으면 src 디렉토리를 "/Scripts/jquery-1.7.2.js"로 설정하십시오.

+0

을했다 ... 감사합니다, 마스터를 사용하여 페이지하지 않습니다. 각 페이지마다 동일한 스크립트 소스 참조가 있습니다. – dinotom