.ascx 사용자 정의 컨트롤에서 < % = obj.ClientID %> 확장에 문제가 있습니다. 전달) 일부 HTML 요소,이벤트 문자열에서 ClientID 확장하기
function doSomething(objectId)
{
...
}
내가하는 .ascx 파일을 가지고, 한 요소의 온 클릭에 = 나는 해봐요을 (전화를 걸 :
나는 자바 스크립트 함수를 포함,은 .js 파일이 해당 .ascx 파일의 요소 ID (전달 된 ID는 클릭 한 요소가 아닌 요소이므로 "this."를 사용할 수 없습니다).예를 들어 더 명확하게 알 수 있습니다.
<script type="text/javascript">
function redirect()
{
doSomething('<%= top.ClientID %>');
}
</script>
<div id="top" runat="server">
<img src="..." alt="..." onclick="redirect();"/>
</div>
을하지만이되지 않습니다 :
이 작동 나는 소스를 볼 때
<div id="top" runat="server">
<img src="..." alt="..." onclick="doSomething('<%= top.ClientID %>');"/>
</div>
, 내가 볼 수있는 <퍼센트 %가 교체가 일어나지도 않은> = 대신의 " doSomething ('ctl00_myControl_top'); " 나는 "doSomething ('< % = top.ClientID %>');"
스크립트 확장은 전자의 경우에는 발생하지만 후자의 경우에는 발생하지 않습니다. 물론 하나의 페이지에 여러 개의 컨트롤 복사본을 포함하면 문제가 해결되므로 해결 방법은 허용되지 않습니다. 한 인스턴스의 "redirect()"함수에 액세스 할 수 있습니다.
이 대체 작업을 수행하는 방법에 대한 아이디어가 있으십니까?
div가 runat = 'server'인 양식 태그 안에 있습니까? –
전체 서버 컨트롤은 form 태그 안에 runat = "server", div 및 script 섹션을 모두 포함합니다. –