h1

Teknik pengiriman nilai antar page di ASP.NET (Part 3 -terakhir-)

14 Juli 2009

HTMLInputHidden

Ada cara lain untuk menyimpan nilai ketika sebuah halaman mengalami Postback. Yaitu dengan menggunakan HTML-standard hidden. Field hidden tidak akan ditampilkan pada halaman. Namun demikian Anda dapat menyimpan nilai ke dalam variabel hidden ini. Data yang disimpan akan tersimpan dalaman halaman aplikasi web Anda. Ketika sebuah halaman dikirimkan ke server, isi dari sebuah variabel hidden akan dikirimkan dalam HTTPForm collection. Sebagai catatan Anda harus menambahkan properti runat=”server” pada control HTMLInputHidden yang dibuat.

Berikut contoh penggunaannya :

if (Page.IsPostBack)
{
Label1.Text="Hidden Value: "+ Hidden1.Value;
}

Tambahkan baris berikut ini pada event Click dari control Button

Hidden1.Value=TextBox1.Text;

Isi textbox dengan suatu nilai, kemudian eksekusi dengan menekan control Button. Nilai dari TextBox1 akan disimpan dalam Hidden1. Saat halaman di load ulang nilai dari Hidden1 akan di tampilkan ke Label1. Yang menarik adalah ketika Anda menekan Button tanpa mengisi nilai dari TextBox, Label1 hanya akan menampilkan text “Hidden Value” tanpa ada tambahan text lain. Hal ini dikarenakan nilai dari TextBox1 selalu disimpan ke dalam variabel hidden. Berbeda ketika halaman di load untuk pertama kali, Page.IsPostBack akan mengembalikan false. Tentu saja text “Hidden Value” tidak akan ditampilkan.

Apabila Anda menggunakan variabel hidden, Anda harus men-submit halaman ke server dengan menggunakan method HTTP POST. Variabel hidden lebih ditujukan untuk menyimpan nilai – nilai dalam sebuah halaman ketika mengalamai postback.


QueryString

Mengirimkan nilai dengan menggunakan QueryString merupakan cara classic. Ketika Anda melihat URL dengan tanda tanya(?), ampersands (&)  dan beberapa nilai yang ditulis dibelakang nama page. Anda mengenal teknik ini sebagai teknik Get.

Bentuk penulisannya pada umumnya seperti di bawah ini :

www.satriapandu.wordpress.com/pg1.aspx?name=krisatria&userid=100&clr=red

Pengiriman nilai antar page dengan menggunakan QueryString dimulai dengan URL halaman yang dituju kemudian diawali dengan tanda tanya dan pasangan nama variabel dan nilainya.

Setiap pasangan nama variabel/nilai yang disimpan setelah pasangan nama variabel/nilai pertama dipisahkan oleh ampersand (&). Beberapa karakter tidak diperbolehkan ditulis pada URL. Oleh karena itu dibutuhkan method Server.UrlEncode untuk mengencode karakter-karakter “terlarang” ini.

‘VB.NET

Dim s as string = Server.UrlEncode(TextBox1.Text) 'Page1
Response.Redirect("Page2.aspx?UserName=" & s) 'Page1
Dim s2 As String = Request.QueryString("UserName") 'Page2

//C#

string s = Server.UrlEncode(TextBox1.Text); //Page1
Response.Redirect("Page2.aspx?UserName=" + s); //Page1
string s2 = Request.QueryString["UserName"]; //Page2

Karena nilai QueryString terlihat dengan jelas pada address bar di browser, tentu saja tidak aman menyimpan nilai – nilai penting dengan cara ini. QueryString hanya dapat berisi karakter text yang menyimpan data dengan tipe sederhana. Dan perlu menjadi catatan bahwa browser membatasi ukuran sebuah URL. Dengan demikian panjang karakter data yang akan dikirimkan melalui URL harus dibatasi. Pada umumnya tidak lebih panjang dari 2000 karakter.


Cookies

Cookies merupakan text (tidak lebih dari 4096 bytes) yang dikirim dari server dan disimpan ke klien. Setiap cookies secara otomatis ditransfer kembali antara klien dan server selama request tiap halaman yang menggunakan cookies tadi. Dengan demikian server-side code dapat menggunakan data dalam cookies ini.

Perintah yang digunakan adalah sebagai berikut :

‘VB.NET

Response.Cookies("myval").Value = TextBox1.Text 'Store
Response.Cookies("myval").Value 'Retrieve

//C#

Response.Cookies["myval"].Value = TextBox1.Text; //Store
Response.Cookies["myval"].Value; //Retrieve

Cookies sendiri dapat dicustom dengan berbagai macam variasi. Seperti expired secara otomatis, menyimpan multiple values dalam sebuah cookies dan membatasi cookies hanya untuk domain dan folder tertentu.

Karena cookies menyimpan data dalam hard drive pengguna, tentu saja tidak disarankan untuk menyimpan data penting dalam cookies. Aplikasi website tertentu terkadang menyimpan data username dan password pada cookies komputer lokal. Untuk aplikasi semacam ini dimungkinkan data pengguna di curi.


Post

Keterbatasan method QueryString – yang berinti method GET – yang digunakan pada teknologi sebelum ASP.NET kemudian dijembatani dengan method POST pada ASP.NET 2.0.

Control Button pada ASP.NET 2.0 memiliki property PostbackUrl yang dapat digunakan secara spesifik untuk mempostback ke halaman tertentu. Penggunaan property PostbackUrl pada button di page1 untuk mengirimkan nilai dari textbox di page1 ke page2 adalah sebagai berikut :

Dim s As String = Request.Form("TextBox1").ToString 'VB.NET


string s = Request.Form["TextBox1"].ToString(); //C#

Database support

Satu pendekatan lain adalah menyimpan data ke dalam database ketika dilakukan request halaman. Namun demikian cara ini penulis rasa terlalu memakan resource karena selalu terjadi trafik bolak-balik dari database ke aplikasi.

Kesimpulan

Halaman web  dan framework ASP.NET menggunakan protokol HTTP untuk berkomunikasi dengan browser dan webserver, maka Anda harus menjaga informasi state-level dan page-level sebuah aplikasi web tersebut karena  HTTP merupakan sebuah stateless protokol.

ASP.NET  menyediakan berbagai  plihan state management. State management dapat dibagi menjadi dua kategori:

CLIENT-SIDE OPTIONS SERVER-SIDE OPTIONS
View State property Application state
Hidden Fields Session state
Cookies Database support
Query Strings

Berikut adalah kesimpulan yang dapat diambil, cara mana yang terbaik bergantung dari kebutuhan Anda sendiri.

Technique Scope Memory Consumption Security
Application Web application Medium Very secure
Cache Web application Medium Very secure
Session User Session Potentially High (Configurable) Very secure
Context Between 2 pages Low Very secure
ViewState 1 page (stores between postbacks) Potentially High Medium
QueryString Between 2 pages Low Low
Cookies Per user, per computer, potentially infinite expiration Low Low
Post Between 2 pages Medium/Low Low
Database Customizable Medium/High Very secure
Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: