ASP.NET Hosting Indonesia – Jaringan Hosting :: Cara transfer data antar halaman pada ASP.Net 4.5.2



ASP.Net merupakan platform pemograman web yang dikembangkan oleh Microsoft. Dan merupakan penerus dari Active Server Pages. Istilah “Classic ASP” biasanya digunakan untuk menyebutkan versi sebelumnya dari Active Server Pages  dengan .net (dibaca dot net) version.
Dalam posting kali ini saya akan memberikan 8 cara untuk mengirim data antar halaman ASP.NET. cara dibawah diantaranya menggunakan cache, http post, querying variables, ASP.NET session state dan lain lain. setiap tombol pada demonya membutuhkan code click event handler yang membawa ke halaman tujuan yang berbeda dan menampilkan data yang telah dikirimkan
Berikut adalah metode tersebut
ASP.NET Hosting Indonesia Jaringan Hosting



  • Menggunakan Query String
Koleksi Query String digunakan utnuk mengambil nilai variable pada http Querystring. Dengan enggunakan teknik ini, saya akan mengambil data dengan url dan pada halaman berikutnya akan menangkapnya.

protected void QueryStringButton_Click(object sender, EventArgs e)
          {
              Response.Redirect("QueryStringPage.aspx?Data=" + Server.UrlEncode(DataToSendTextBox.Text));

  • Menggunakan HTTP Post
Hypertect Transfer Protocol (HTTP) merukana protocol komunikasi yang di desain untuk dapat memberikan respon antara client dan server. Dengan teknik ini saya akan memanggil post back url dan pada halaman berikutnya dengan menggunakan request saya akan menangkapnya.

<asp:Button ID="HttpPostButton" runat="server" Text="Use HttpPost"
              PostBackUrl="~/HttpPostPage.aspx" onclick="HttpPostButton_Click"/>
 protected void HttpPostButton_Click(object sender, EventArgs e)
         {
      // The PostBackUrl property of the Button takes care of where to send it!
         }

  • Menggunakan Session State
Session dapat digunakan sebagai tempat penyimpanan, bahkan data yang rumit sekalipun seperti cookies. Sebenanrnya session menggunakan cookie untuk menyimpan data kecuali anda secara eksplisit tidak mengijinkannya. Session dapat digunakan dengan muda pada ASP.Net dengan session object. Menggunakan teknik ini saya akan menyimpan data pada session dalam mesin client dan di halaman berikutnya mengambilnya. Menggunakan aplikasi variable lebih disarankan untuk ahlinya dibandingkan dengan variable session.
 
  protected void SessionStateButton_Click(object sender, EventArgs e)
          {
              Session["Data"] = DataToSendTextBox.Text;
              Response.Redirect("SessionStatePage.aspx");
         }

  • Gunakan Public Properties
properties tidak hanya digunakan untuk akses ke fiels, hal ini juga digunakan untuk mengontrol akses ke field yang ada di dalam kelas.

 public string DataToSend
         {
             get
             {
                  return DataToSendTextBox.Text;
              }
         }
         protected void PublicPropertiesButton_Click(object sender, EventArgs e)
         {
              Server.Transfer("PublicPropertiesPage.aspx");
         }

  • Gunakan PreviousPage Control Info
Dengan menggunakan teknik ini saya akan saya akan mengarahkan user ke halaman selanjutnya dan halaman selanjutnya akan menggunakan previouspage.FindControl untuk menangkap data

protected void ControlInfoButton_Click(object sender, EventArgs e)
          {
              Server.Transfer("ControlInfoPage.aspx");
         }
   // target page:
 protected void Page_Load(object sender, EventArgs e)
         {
             var textbox = PreviousPage.FindControl("DataToSendTextbox") as TextBox;
              if (textbox != null)
             {
                 DataReceivedLabel.Text = textbox.Text;
             }
         }

  • Gunakan HttpContect items Collection
protected void HttpContextButton_Click(object sender, EventArgs e)
          {
              HttpContext.Current.Items["data"] = DataToSendTextBox.Text;        
    Server.Transfer("HttpContextItemsPage.aspx");
         }

 // target page:
 protected void Page_Load(object sender, EventArgs e)
          {
              this.DataReceivedLabel.Text =(String) HttpContext.Current.Items["data"];
         }

  • Gunakan Coockie
Cookies merukana kepingan kecil pada text diantara browser dan webserver setiap kali request. Olehkarena itu nilainya tersedia disetiap halaman. Cookies biasanya digunakan untuk menyimpan preferensi user yang dapat membantu situs mengingat fitur fitur yang perlu dinyatakan atau dipadamkan.

protected void CookiesButton_Click(object sender, EventArgs e)
         {
             HttpCookie cook =  new HttpCookie("data");
             cook.Expires = DateTime.Now.AddDays(1);
             cook.Value = DataToSendTextBox.Text;
              Response.Cookies.Add(cook);
              Response.Redirect("HttpCookiePage.aspx");
         }

 // target page:
 protected void Page_Load(object sender, EventArgs e)
         {
             DataReceivedLabel.Text = Request.Cookies["data"].Value;
         }

  • Gunakan Cache
Cache utamanya digunakan untuk meningkatkan performans dari sebuah web pages, anda dapat menambahkan objek dan mengambilnya jika diinginkan. Cache items disimpan pada memory di dalam server dan dapat digolongkan sebagai variable global khusus, pada kenyataannya

pre-ASP.NET, application state digunakan sebagai cache,  perbedaan antara application variables dan cache adalah cache menawarkan management API pada web pages, cache di atur melalui WebCache helper. Apabila anda ingin memasukkan sesuatu kedalam cahe anda dapat menggunakan WebCache.Set method. Method ini mengambil empat parameter,  nama yang akan diberikan pada item cache, itemnya itu sendiri, lamanya item berada pada cache dalam menit (defaulnya 20) dan pada menit tersebut harus di restart baik jika item ditunjuk atau tidak (defaultnya: true hal ini disebut Slidiing Expiration

protected void CacheButton_Click(object sender, EventArgs e)
          {
              Cache["data"] = DataToSendTextBox.Text;
              Server.Transfer("CachePage.aspx");
         }
    // target page:
     protected void Page_Load(object sender, EventArgs e)
          {
              this.DataReceivedLabel.Text = (string) Cache["data"];
         }