2007년 07월 07일
[ASP.NET] Sys.ArgumentOutOfRangeException
ASP.NET AJAX에서 frameset과 frame을 이용하여 프래임을 나누거나, iframe을 사용할 때
Sys.ArgumentOutOfRangeException 오류가 발생하는 경우가 있습니다.
[시스템 개발환경]
Windows Vista + (VS2005+SP1)
[증상]
아래 스크립트처럼 코딩하면 "Sys.ArgumentOutOfRangeException ..."라는 오류 메시지가 발생 (그림 참조)
<frameset onload="checkNotice()" rows="80,*" border="0"
FRAMESPACING="0" TOPMARGIN="0" LEFTMARGIN="0"
MARGINHEIGHT="0" MARGINWIDTH="0">
<frame src="/top.aspx" id="_top" name="_top"
scrolling="no" border="0"
frameborder="no"
noresize TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<frameset cols="<%=frmColSize%>"
frameborder="no"
border="0" framespacing="0">
<frame src="left.aspx" scrolling="no"
frameborder="no"
name="_menu" framespacing="0" marginwidth="0" marginheight="0">
<frame src="body.aspx" scrolling="auto"
frameborder="no"
name="_main">
</frameset>
</frameset>

[원인]
asp.net ajax에서 frameborder = { yes | no | 1 | 0 } 에서 yes 또는 no의 문자열을 사용할 경우 오류가 발생된다.
[해결방법]
asp.net ajax에서 frameborder = { yes | no | 1 | 0 } 에서 정수형 값인 1 또는 0 을 사용하면,
Sys.ArgumentOutOfRangeException 오류가 해결된다.
(위 스크립트를 아래와 같이 수정하면 오류가 발생하지 않는다.)
<frameset onload="checkNotice()" rows="80,*" border="0"
FRAMESPACING="0" TOPMARGIN="0" LEFTMARGIN="0"
MARGINHEIGHT="0" MARGINWIDTH="0">
<frame src="/top.aspx" id="_top" name="_top"
scrolling="no" border="0"
frameborder="0"
noresize TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<frameset cols="<%=frmColSize%>"
frameborder="0"
border="0" framespacing="0">
<frame src="left.aspx" scrolling="no"
frameborder="0"
name="_menu" framespacing="0" marginwidth="0" marginheight="0">
<frame src="body.aspx" scrolling="auto"
frameborder="0"
name="_main">
</frameset>
</frameset>
[경험이 최고의 스승이다.]
Sys.ArgumentOutOfRangeException 오류가 발생하는 경우가 있습니다.
[시스템 개발환경]
Windows Vista + (VS2005+SP1)
[증상]
아래 스크립트처럼 코딩하면 "Sys.ArgumentOutOfRangeException ..."라는 오류 메시지가 발생 (그림 참조)
<frameset onload="checkNotice()" rows="80,*" border="0"
FRAMESPACING="0" TOPMARGIN="0" LEFTMARGIN="0"
MARGINHEIGHT="0" MARGINWIDTH="0">
<frame src="/top.aspx" id="_top" name="_top"
scrolling="no" border="0"
frameborder="no"
noresize TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<frameset cols="<%=frmColSize%>"
frameborder="no"
border="0" framespacing="0">
<frame src="left.aspx" scrolling="no"
frameborder="no"
name="_menu" framespacing="0" marginwidth="0" marginheight="0">
<frame src="body.aspx" scrolling="auto"
frameborder="no"
name="_main">
</frameset>
</frameset>

[원인]
asp.net ajax에서 frameborder = { yes | no | 1 | 0 } 에서 yes 또는 no의 문자열을 사용할 경우 오류가 발생된다.
[해결방법]
asp.net ajax에서 frameborder = { yes | no | 1 | 0 } 에서 정수형 값인 1 또는 0 을 사용하면,
Sys.ArgumentOutOfRangeException 오류가 해결된다.
(위 스크립트를 아래와 같이 수정하면 오류가 발생하지 않는다.)
<frameset onload="checkNotice()" rows="80,*" border="0"
FRAMESPACING="0" TOPMARGIN="0" LEFTMARGIN="0"
MARGINHEIGHT="0" MARGINWIDTH="0">
<frame src="/top.aspx" id="_top" name="_top"
scrolling="no" border="0"
frameborder="0"
noresize TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<frameset cols="<%=frmColSize%>"
frameborder="0"
border="0" framespacing="0">
<frame src="left.aspx" scrolling="no"
frameborder="0"
name="_menu" framespacing="0" marginwidth="0" marginheight="0">
<frame src="body.aspx" scrolling="auto"
frameborder="0"
name="_main">
</frameset>
</frameset>
[경험이 최고의 스승이다.]
# by | 2007/07/07 23:46 | 느린보 정보 | 트랙백 | 덧글(2)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
저는 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" /> 이줄 때문에 에러가 나던데 이유를 모르겠네요. 에휴