[C#,ASP.NET,POSTBACK]ASP.NET에서 다른 페이지로 포스트백 시키기
꽁스짱
ASP.NET
0
1201
2021.02.17 01:43
ASP.NET 2.0 이후 에서는 이전페이지(onj1.aspx)에서 다른 페이지(onj2.aspx)로 포스트백을 사용할 수 있다.
이전페이지에서는 PostBackUrl을 통해 포스트백 시킬 URL을 기술하고 다음페이지에서는 Page.PreviousPage를 통해 이전페이지에서 넘어오는 컨트롤의 값을 확인 할 수 있다.
ASP.NET 1.0에서는 버튼 클릭시 자바스크립트로 submit하거나, 버튼 이벤트로 response.redirect() 등을 이용하여 페이지 이동을 하였다.
ASP.NET 2.0이상 에서는 버튼에 PostBackUrl 속성을 사용하여 submit 할 수 있고, submit하여 이동된 페이지에서 Page.PreviousPage 메서드를 사용하여 이전페이지의 컨트롤들의 값을 가져올 수 있다.
(onj1.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="onj1.aspx.cs" Inherits="onjweb1.onj1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:label ID="label1" runat="server" Text=“이름”></asp:label>
<asp:TextBox ID="textbox1" runat="server" />
<asp:Button ID="button1" runat="server" Text=“다른페이지로포스트백" />
</div>
</form>
</body>
</html>
(onj1.aspx.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace onjweb1
{
public partial class onj1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.button1.PostBackUrl = "~/onj2.aspx";
}
}
}
(onj2.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="onj2.aspx.cs" Inherits="onjweb1.onj2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="label1" runat="server" Text="Name : "></asp:Label>
<asp:Label ID="label2" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
(onj2.aspx.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace onjweb1
{
public partial class onj2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TextBox t = (TextBox)Page.PreviousPage.FindControl("textbox1");
this.label2.Text = t.Text;
}
}
}
onj1.aspx를 실행해 보자.