Asp.Net ile Sayfalar Arasi Geçis ve Veri Aktarimi
Bu makalede ki konumuz basliktan da anlasildigi gibi sayfalar arasi geçis ve veri tasimayi anlatacagiz. Disaridan ne kadar zor bir konu olarak gözükse de içeriye girip baktigimizda, arastirdigimizda aslinda pekte zor bir is olmadigini anlayabiliriz. Bu makalede ise daha çok yeni baslayanlarin isine yarayacagini düsündügüm türde bir anlatim, açiklama yapacagim.
Ilk olarak Microsoft Visual Studio’dan yeni bir proje açmayi ve olursturmayi açiklayalim;
Yapacagimiz ilk adim “Start” bölümünden “New Project” i açip karsimiza çikan sayfada ” ASP.NET Web Application” seçiyoruz. Açilan sayfada sag tarafta ki “Solution Explorer” kisminda açtigimiz projeyi görebiliriz. Olusturdugumuz proje adinin üstüne gelip mouse’dan sag tik yapip çikan bölümden “Add” kismina gelip orada “New Item” a tikliyoruz, orada “Web Form” seçip devam ediyoruz. Örnek olarak ben “index.aspx” sayfasi olusturdum.
Kodlar;
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="sayfalar_arasi_veri_ak.index" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Iki sayfa arasi geçis ve veri aktarimi yapacagimiz için bir tane daha sayfa açmamiz gerekiyor. Bunun için ayni yollari tekrardan uygulayabiliriz. Ben yeni sayfa adi olarak “icerik.aspx” adini kullandim. Bu adimlari takip ettikten sonra index.aspx sayfasina buton eklememiz gerekir. Bunun kolay yoldan yapabilir. Sol tarafta çikan “Toolbox” penceresinde bulunan “button” bölümünü seçip istedigimiz yere sürükleyerek veya koymak istedigimiz yere daha öncesinde imleci getirip button üstüne iki kez tiklarsak oraya hazir bir sekilde kodumuz gelir.
Kodlar;
Kodlar;
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="sayfalar_arasi_veri_ak.index" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
Burada yapmis oldugumuz islemi içerikte de gerçeklestirmemiz gerekiyor ki butona tikladigimizda bir içerik görebilelim. Yalniz içerikte button yerine “label” a ayni islemleri yapabiliriz. Yaptigimiz islemleri kontrol etmek için ise index.aspx sayfasinda bulunan alt kisimda ki “Design” girip orada karsimiza çikan butona iki kez tiklamamiz gerekiyor. Orada karsimiza gene kodlar çikiyor.
Daha sonra sonda ki “protected void Button1_Click(object sender, EventArgs e)” kodunun alt kismina
Kodlar;
namespace sayfalar_arasi_veri_ak
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("icerik.aspx");
}
}
}
yaziyoruz.
Programin yukari kisminda bulunan Google Chrome butonundan tarayicida yaptigimiz islemin çalisir halini görebiliriz. Çikan ekranda bulunan butona tikladigimizda içerikte yazmis oldugumuz “Label” ekranda gözükür. Simdi sayfalar arasi geçis yapmak için izlememiz gereken yollara bakacagiz.
Üst tarafta yaptigimiz islemlerin üstünden devam edecegiz. Mesela sayfamiza 1 diye bir veri girelim.
Kodlar;
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("icerik.aspx?a=1");
}
}
}
Içerik olarak “Merhaba” yazdirmak istiyoruz. Tekrardan sag tarafta bulunan pencereden icerik.aspx altinda bulunun icerik.aspx.cs’ye giriyoruz. Bu bölümde gelen veriyi aliyoruz.
Kodlar;
namespace sayfalar_arasi_veri_ak
{
public partial class icerik : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["a"] == "1")
{
Label1.Text = "Merhaba";
}
}
}
}
Bu islemimiz de bittigi zaman tekrardan tarayicimizda deneyelim. Butona tikladigimiz zaman “Merhaba” yazdirmasi gerekiyor.
Bu islemler ne kadar kolay gibi gözükse de çok dikkat isteyen islemlerdir atlamadan ve dikkatlice yapmamiz gerekiyor.
Querystring’i pekte tercih etmemeye özen göstermeliyiz çünkü güvenli bir gönderim degildir. Get gibi gönderir bilgilerimiz açiktadir bu da bizim için pek iyi olmayabilir.