등록 된 회원 및 웹 개발 데이터베이스 생성
표준 HTML 양식 (양식 요소)을 사용하면 데이터 정보를 다른 페이지 또는 응용 프로그램으로 전달하여 전송하여 양식 요소를 사용할 수 있습니다. ASP.NET 1.X에서 웹 페이지는 전달 메커니즘을 사용하여 페이지 데이터를 페이지 자체에 제출합니다. ASP.NET 2.0의 경우 기능이 확장되어 페이지에 걸쳐 제출할 수 있습니다. 이번 주 에이 새로운 기능에 대해 논의합시다.
전통적인 방법
비교를 용이하게하기 위해 웹 페이지에서 데이터를 전송하는 이전 방법을 검토하는 데 1 분을 보내고 싶습니다. HTML의 테이블 요소에는 제출 된 데이터를 처리하기 위해 어떤 리소스 (따라서 웹 페이지, 스크립트, 프로그램 등을 참조)를 지정하는 작업 속성이 있습니다. 다음 코드는 샘플입니다.
<html>
<head> <title> 샘플 HTML 양식 </title> </head>
<body>
<form name = "frmsample"method = "post"action = "target_url">
<입력 유형 = "텍스트"이름 = "fullName"id = "fullName" />
<입력 유형 = "버튼"이름 = "제출"value = "제출" /> />
</form>
</body> </html>
텍스트 도메인에 입력 된 값 (이름은 FullName)은 단위 요소의 동작 속성으로 지정된 페이지 또는 프로그램에 제출됩니다. ASP.NET 개발자에게는 표준 HTML 양식을 사용하더라도 매우 드문 일입니다.
ASP.NET 개발자가 한 웹 페이지에서 다른 웹 페이지로 데이터 정보를 전달하는 작업에 직면 할 때 선택의 객실은 매우 광범위합니다. 세션 변수, 쿠키, 쿼리 스트링 변수, 캐싱 캐시) 및 서버 트랜스퍼도 포함되지만 ASP.NET 2.0도 다른 선택을 제공합니다.
ASP.NET 2.0은 다른 제공 방법을 제공합니다
ASP.NET 2.0을 설계 할 때 Microsoft는 웹 페이지 간의 데이터 교차 요구를 인식했습니다. 이 의식을 통해 PostbackUrl 속성이 ASP.NT의 버튼 (버튼) 컨트롤에 추가됩니다. 이를 통해 사용자가 제출 될 때 양식과 위의 데이터가 전달되는 위치 (즉, PostbackUrl 속성에 의해 지정된 URL 값)를 표시 할 수 있습니다. 일반적으로, 크로스 페이지 전송은 백그라운드에서 JavaScript를 사용하는 과정입니다.
< %@ page language = "vb" %><doctype html public "-// w3c // dtml 4.0 과도기 // en">>
<html> <head>
<title> Cross Postback 예제 </title>
</head> <body>
<form id = "frmcrosssspostback1"method = "post"runat = "server">
<asp : label id = "lblname"runat = "server"text = "name :"> </asp : label>
<asp : textbox id = "txtname"runat = "server"> < /asp : textbox> <br />
<asp : label id = "lble-mailaddress"runat = "server"text = "이메일 :"> </asp : label>
<asp : textbox id = "txte-mailaddress"runat = "server"> < /asp : textbox> <br />
<asp : button id = "btnsubmit"runat = "server"text = "제출"postbackurl = "crosspostback2.aspx" />
</form> </body> </html>
ASP.NET 페이지의 ASP.NET 페이지에는 두 개의 텍스트 도메인 (이름 (이름) 및 이메일 (이메일)과 데이터를 제출하는 데 사용되는 버튼 (버튼)이 있습니다. 이 제출 버튼의 Postback 속성은 다른 웹 페이지로 지정되므로 양식이 제출되면 해당 페이지로 데이터를 전송할 수 있습니다. 참고 : 이 예에서는 양식 요소가 제출 중에 게시물 속성을 설정하여 메소드 속성을 설정하여 Posthod 속성에 의해 설정되지만 모든 크로스 포스트 백 (크로스 페이지 전달)을 사용하기 때문에 필요하지 않습니다. 디자인에 따른 게시물.
이전 페이지를 사용하십시오
크로스 페이지 전달의 호출을 통해 ASP.NET 페이지가로드되면 객체의 ispostback 속성이 트리거되지 않습니다. 그러나 이전 페이지 (이전 페이지)라는 속성이 있으면 크로스 페이지 배송을 적용한 사람들에게 액세스하고 사용할 수 있습니다.
크로스 페이지 요청이 발생할 때마다 현재 페이지의 이전 페이지 속성은 전달 된 페이지를 참조하도록 보존됩니다. 페이지 생성이 크로스 페이지 전달 자극에서 나오지 않거나 페이지가 다른 프로그램 그룹에있는 경우 이전 페이지 속성이 초기화되지 않습니다.
이전 페이지 객체를 확인하여 페이지 로딩이 크로스 페이지 전달의 결과인지 확인할 수 있습니다. 값이 NULL 인 경우 일반적인 부하임을 의미합니다. NULL 값은 웹 페이지가 크로스 페이지 전달에서 나온다는 것을 나타냅니다. 또한 페이지 클래스에는 iscrossspagepostback이라는 메소드도 포함되어 있으며,이 페이지는 페이지가 크로스 페이지 전달의 결과인지 여부를 결정하는 데 특별히 사용됩니다.
결정되면 이전 페이지 객체의 FindControl 메소드로 호출 페이지의 컨트롤에 액세스 할 수 있습니다. 다음 코드는이 예제의 두 번째 페이지입니다.
< %@ page language = "vb" %><doctype html public "-// w3c // dtml 4.0 과도기 // en">>
<html> <head>
<title> Cross Postback 예제 2 </title>
</head> <body>
<script language = "vb"runat = "server">
sub page_load ()
그렇지 않다면 (page.previouspage는 아무것도 아닙니다) 그런 다음)
그렇지 않다면 (page.iscrosspagepostback)
response.write ( "이름 : + ctype (previouspage.findControl ("txtName "), textbox .Text +"<br>)
response.write ( "이메일 :" + ctype (previousepage.findControl ( "txte-mailaddrss"), textbox) .text + "<br>")
끝 If
끝 If
종료 서브
</script> </body> </html>
이 페이지에서는 크로스 페이지 전달에 의해 호출되는지 여부를 결정합니다. 그렇다면 FindControl 메소드를 통해 페이지 호출 페이지에서 값에 액세스 하고이 메소드에서 얻은 컨트롤을 텍스트 상자 컨트롤로 변환 한 다음 텍스트 (텍스트) 속성의 내용을 표시하십시오.
이전 페이지 전체 객체를 크로스 페이지 전달을 트리거하는 페이지 유형으로 변환 할 수 있습니다. 이 메소드를 사용하면 페이지의 페이지와 페이지 메소드에 액세스 할 수 있습니다. 이 기술의 예를 제시하기 전에 글로벌 속성을 포함하려면 첫 번째 예제를 다시 작성해야합니다. 다음 코드는 두 가지 속성의 첫 번째 목록입니다.
< %@ page language = "vb" %><doctype html public "-// w3c // dtml 4.0 과도기 // en">>
<html> <head>
<title> Cross Postback 예제 </title>
<script language = "vb"runat = "server">
공개 재산 이름
얻다
reture me.txtname.text를 반환합니다
끝 얻으십시오
종료 속성
공개 재산 전자 메일 드레스
얻다
reture me.txte-mailaddress.text
끝 얻으십시오
종료 속성
</script> </head> <body>
<form id = "frmcrosssspostback1"method = "post"runat = "server">
<asp : label id = "lblname"runat = "server"text = "name :"> </asp : label>
<asp : textbox id = "txtname"runat = "server"> < /asp : textbox> <br />
<asp : label id = "lble-mailaddress"runat = "server"text = "이메일 :"> </asp : label>
<asp : textbox id = "txte-mailaddress"runat = "server"> < /asp : textbox> <br />
<asp : button id = "btnsubmit"runat = "server"text = "제출"postbackurl = "crosspostback2.aspx" />
</form> </body> </html>
이제 속성이 구축되었으므로 쉽게 액세스 할 수 있습니다. 주의를 기울이려면 Page Class Previous Page 객체는 올바른 유형으로 변환되어 속성에 올바르게 액세스해야합니다. 이를 적절한 페이지 클래스로 변환하여 구현할 수 있습니다.
<%@ page language = "vb"%>< %@ Reference Page = "~/CrossPostback1.aspx" %>
<doctype html public "-// w3c // dtml 4.0 과도기 // en">>
<html> <head>
<title> Cross Postback 예제 3 </title>
</head> <body>
<script language = "vb"runat = "server">
sub page_load ()
CrossPostback1_aspx로 Dim CPPPage
그렇지 않다면 (page.previouspage는 아무것도 아닙니다) 그런 다음)
그렇지 않다면 (page.iscrosspagepostback)
if (page.previouspage.isvalid) 그러면
cpppage = ctype (previouspage, crosspostback1_aspx)
response.write ( "이름 : + cppppage.name +"<br> ")
response.write ( "이메일 :" + cpppage.e-mailadddress)
끝 If
끝 If
끝 If
종료 서브
</script> </body> </html>
이를 설명하면 헤드 헤드의 통화 페이지에 대한 참조를 정의 하여이 참조 유형을 코드에서 사용할 수 있습니다. 이 참조를 통해 실제 vb.net 코드는 ctype 함수를 사용하여 이전 페이지 객체를 적절한 유형으로 변환합니다. 그 후, 이러한 속성은 코드 데모처럼 사용할 수 있습니다.
위 목록에서 이전 페이지 객체의 isvalid 메소드를 사용하는 것은 다음과 같습니다. 이전 페이지의 isvalid 속성은 작동하기 전에 모든 법적 검증 및 테스트를 통과했는지 확인합니다.
요약
개인 사용자 정보 유지 관리를 포함하여 웹간에 데이터 매개 변수를 전송하기위한 많은 응용 프로그램이 있습니다. 쿼리 스트링 및 쿠키 사용과 같은 조상 웹 솔루션을 사용하면 제출이 발생할 때 한 페이지에서 다른 페이지를 가리킬 수 있습니다.
ASP.NET 1.1 추가 방법을 제공하는 것 외에도 이러한 방법을 잘 지원할 수 있지만 ASP.NET 2.0은 크로스 페이지 전달에 의존하여 이와 관련하여 큰 발전을 가져 왔습니다. 다른 웹 페이지의 하나의 웹 처리 데이터를 간단하게 만듭니다. 다음 ASP.NET 2.0 프로그램을 개발할 때는이 새로운 개념의 장점을 잘 활용해야합니다.