2009-09-16 5 views
1

ASP.Net 사용자 정의 컨트롤에 JQuery를 추가하여 확인란이 선택되었는지 확인하려고합니다. 스크립팅 언어는 사용자 컨트롤에서 직접 지원되지 않지만 RegisterStartupScript() 메서드를 통해 추가해야합니다. 나는 이것을 설명하는이 URL에 게시물을 발견했습니다 : http://www.codeproject.com/KB/aspnet/Javascript_in_Usercontrol.aspx. 게시물은 코드 숨김 파일에서 스크립팅 코드 구문을 문자열로 작성한 다음 RegisterStartupScript() 메서드에 매개 변수로 보냅니다. 이 문제를 해결하는 데 어려움을 겪고 있으며 누군가가 ASP.Net 사용자 정의 컨트롤에 스크립트를 추가하는 더 좋은 방법을 알기를 바랍니다. 나는 사용자 정의 컨트롤을 포함하는 영문 파일이 스크립트 태그를 포함하는 경우C#의 ASP.Net 사용자 정의 컨트롤 JQuery

<%@ Control Language="C#" ClassName="UC" AutoEventWireup="true" 
    CodeFile="UC.ascx.cs" Inherits="UserControls_UC" %> 

<span id="Licenses"></span> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     var ctlID = $("span[id$='Licenses']"); 
     ctlID.text = "Testing"; 
    }); 
</script> 

는, 아무 일도 발생하지 : 여기 간단한 샘플을 작성했습니다

내 사용자 제어를위한 마크 업입니다. 포함시키지 않으면 런타임 오류가 있으며 Object가 필요하다는 JavaScript 오류 대화 상자가 표시됩니다.

+1

를 사용하여. html (디자인) 뷰에 스크립트를 직접 추가하면 어떻게됩니까? – mxmissile

+0

아무 일도 일어나지 않으면 시간의 90 %가 내 코드에서 올바르게 작동하지 않습니다. – sam

답변

1

컨트롤에 스크립트 태그를 놓기 만하면됩니다.

<script type="text/javascript"> 
    $(function(){ 
     if ($('input:checkbox:checked').size() === 5) { 
      // Do Something 
     } 
    }); 
</script> 
-2

여러분의 작업에 가장 적합한 솔루션은 RegisterStartupScript()입니다. 왜 당신을 위해 일하지 않습니까? UserControl 내부에 인라인 태그를 사용하고 있습니까? & 자바 스크립트 블록 스파게티가 엉망인 경우 RegisterStartupScript()는 블록을 하나만 만듭니다.

+4

내 컨트롤의 스크립트 태그에 문제가 없었습니다. – ChaosPandion

0

오류는 $이 정의되지 않았기 때문에 발생합니다. 사용자 정의 컨트롤에 jQuery 라이브러리를 포함해야합니다.

2

RegisterStartupScript()없이 위의 방법을 사용하면 동일한 페이지에서 usercontrol을 여러 번 사용할 때 얼굴 문제가 발생합니다.

그래서 최선의 제안 방법에 스크립트를 생성하는 코드 숨김이 100 % 맞습니다 확실하지 RegisterStartupScript()

관련 문제