2010-12-27 3 views
0

안녕하세요, 코드를 통해 수동으로 표시하는 asp.net 모달에 대한 일부 컨트롤이 있습니다. 이제 pageLoad() 안에있는 컨트롤 중 하나에 선택기를 연결하려고합니다. 문제는 모달 컨테이너가 처음에 visible = false로 설정된다는 것입니다. 컨트롤이 visible false로 설정되어 있습니다. jQuery 선택기가 실패합니다.

나는 길이를 확인하려하지만 여전히

if ($('#<%= myControl.ClientId %>').length > 0) 
{ 
    $('#<%= myControl.ClientID %>').click(function() { 
     // Do work 
    }); 
} 

컴파일러 오류 메시지 예외가 발생합니다 : CS0103 : 이름을 'myControl'현재 컨텍스트에

답변

2

몇 가지 존재하지 않습니다 여기, 첫 번째/주요 쟁점은 myControl이 현재 범위에 정의되어 있지 않다는 것입니다. ASP.Net에있는 곳이면 어디든 입니다. .Net 측면 문제입니다.

스크립트의 경우 .ClientId이 아닌 .ClientID이라는 문제가 더 있습니다. 또한, 그것의 존재를 확인 할 필요가 없습니다, 당신은 다만 수 : 컨트롤이없는 경우

$('#<%=myControl.ClientID%>').click(function(){ 
    // Do work 
}); 

는 ..., 그냥 아무것도 결합/찾을 수 없습니다. ASP.Net에서 더 쉽게 접근 할 수있는 방법이 있습니다. 고유 한 클래스가 있다면 그 클래스를 추가하십시오. CssClass="MyClass" 인 경우 을 선택자로 사용하십시오. 다음과 같이하십시오 :

$('.MyClass').click(function(){ 
    // Do work 
}); 

이렇게하면 스크립트를 페이지 대신 외부 파일에 넣을 수 있으며 사용자에게 또 다른 이점이 있습니다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 동시에 jquery 선택기를 사용할 수있게하면서 요소를 보이지 않게 설정하는 방법을 알고 계시나요? –

+1

@Damien -이 경우 페이지에 실제로 렌더링하려면 'display : none;'스타일을 지정해야합니다. 당신은 숨겨진 클래스를 만들 수 있습니다. 예를 들면'.hidden {display : none; }'그런 다음 위의 클래스 접근법과 조합하여 사용하십시오.'CssClass = "MyClass hidden"'매우 깨끗함 : –

+1

@Damien Joe는 visible = false로 설정할 때 코드 뒤에 있습니다. 브라우저에 보내십시오. 필요한 것은 css 속성을 style = "display : none;"으로 설정하는 것입니다. –

관련 문제