[C#,ASP.NET,POSTBACK]ASP.NET에서 다른 페이지로 포스트백 시키기

홈 > 공유팁! > 프로그램 관련
프로그램 관련

[C#,ASP.NET,POSTBACK]ASP.NET에서 다른 페이지로 포스트백 시키기

꽁스짱 0 1202
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">
<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">

<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를 실행해 보자.
 
0 Comments
제목