첫번째 프레임 페이지 입니다.
<frameset rows='100%,*' cols='*' framespacing='0' frameborder='NO' border='0'>
<frame src='SlideShow.asp?<%IF Trim(request.querystring) = '' Then Response.Write(request.Form) ELSE Response.Write(request.QueryString)%>' name='mainFrame' >
<frame src='about:blank' scrolling='NO' noresize name='hiddenFrame' >
</frameset>
SlideShow.asp라는 파일에서 임의의 이벤트가 발생하면 이 파일의 특정 콤보에 값을 채우는 방법입니다
이 방식을 사용하면 새로고침의 한계를 뛰어 넘을 수 있습니다.
parent.document.frames['hiddenFrame'].document.location='top.asp?mode=CSSpec&ProductCode=' + document.frmSlide.ProductCode.value; 이런 방식으로 숨겨진 프레임 top.asp파일을 호출합니다. 이런식으로 사이트에 hidden 프레임을 만들어 두면 그렇게 멀게만 느껴졌던 디비호출을 마음대로 할 수 있습니다
=>Top.asp만 잘 정의 하면 대부분의 요청을 asp리프레쉬 없이 처리 할 수 있습니다.
// 여기는 Top.asp에 해당하는 내용입니다
mode에 따라서
<script language='javascript>
var TargetDoc= parent.document.frames['mainFrame'].document;
var oOption;
IF Request('mode') = 'CSSpec' THEN
Set adocmd = Server.CreateObject('ADODB.Command')
WITH adocmd
.ActiveConnection = DbConn
.CommandType = adCmdStoredProc
.CommandText = 'IS_CSEnterOrderCounts'
.Parameters.Refresh
.Parameters.Item('@ProductCode').Value= Cint(Request('ProductCode'))
Set RS = .Execute
END WITH
%>
for( key in TargetDoc.frmSlide.CSSpec)
{
TargetDoc.frmSlide.CSSpec.remove(key);
}
<%
Do While Not RS.EOF
%>
oOption = TargetDoc.createElement('OPTION');
oOption.value='<%=Trim(RS('ColorCode')) %>;<%=Trim(RS('SizeCode')) %>';
oOption.text ='<%=Trim(RS('Name') )%>-<%=Trim(RS('Size'))%>';
TargetDoc.frmSlide.CSSpec.add(oOption);
<%
RS.MoveNext
Loop
RS.close()
END IF%>
</script>
'프로그래밍 > ASP' 카테고리의 다른 글
코딩 규약 (HTML/ASP/JavaScript) (0) | 2010.04.23 |
---|---|
사이트를 지키자!!! (0) | 2010.04.23 |
다중 셀렉트 (0) | 2010.04.23 |
[펌]SQL에 EM과 쿼리 아날라이져의 장점 모은 DB매니저, 디비맨 (0) | 2010.04.23 |
[펌]IISWebAdmin 1.2.0.60 - IIS 제어용 컴포넌트 (0) | 2010.04.23 |