Arsip Blog

Custom Control: Modifikasi Gridview

Dalam review akhir tahun tentang kompetensi di ASP webform ada satu point tentang membuat custom control. Karena proyek webform yang saya kerjakan sebelumnya tidak melakukan custom control, akhirnya saya di minta untuk membuat sampel tentang hal ini.

Disini saya akan memodifikasi gridview. Saya akan menambahkan satu kolom checkbox di kolom pertama.  Jika dibutuhkan kita tinggal set property true atau false untuk mengaktifkan.
Read the rest of this entry

Iklan

Binding Bulan (month) ke DropdownList

Disini saya ingin mencatat bagaimana cara binding nama-nama bulan (month) ke dropdownlist secara dinamis.
Nama bulan diambil dari class DateTimeFormatInfo.

Berikut kode selengkapnya. Asumsikan kita punya dropdownlist dengan ID=”Dropdownlist1″.

Private Sub BindMonthToDropdown()
	Dim info As System.Globalization.DateTimeFormatInfo
	info = System.Globalization.DateTimeFormatInfo.GetInstance(Nothing)

	Me.Dropdownlist1.Items.Clear()
	For i As Integer = 1 To 12
		Me.Dropdownlist1.Items.Add(New ListItem(info.GetMonthName(i), i.ToString()))
	Next
End Sub

Semoga bermanfaat

Happy Coding

Optimalisasi Performance ASP.net

MENYIMPAN INFORMASI VIEWSTATE DI SERVER

Dalam aplikasi web terdapat banyak faktor yang mempengaruhi performance. Salah satu yang menjadi ‘kekurangan’ ASP.net adalah Viewstate. Viewstate ini berisi informasi-informasi dari semua control yang ada di page. Informasi control ini sebenarnya diproses di server dan kemudian di simpan di viewstate dan ditempelkan ke page dan dikirim ke client. Dan tentu saja, semakin besar informasi viewstate ini, semakin besar pula ukuran file yang di transfer ke client. Untuk melihat informasi viewstate, buka halaman .aspx dan lihat kode sumbernya (view source)

Setiap control di halaman selalu memiliki viewstate padahal tidak semua digunakan. Jika ketika proses postback kita tidak memerlukan informasi dari suatu control maka kita tidak perlu menyimpan viewstate. Kita bisa mematikan viewstate suatu control dengan set ‘EnableViewState=false’ di property control. Tentunya kita harus jeli, menentukan control mana yang memerlukan viewstate dan mana yang tidak.

Selain setting diatas, kita juga bisa memindahkan informasi viewstate ini ke server, jadi tidak akan diikutsertakan dalam page yang dikirim ke client. Untuk menyimpan informasi viewstate di server, kita perlu meng override method ‘SavePageStateToPersistenceMedium’ dan method ‘LoadPageStateFromPersistenceMedium’

Read the rest of this entry

Membuat Event di UserControl

User control mempunyai sifat seperti web page. Dia mempunyai event seperti Load, Init sama seperti web page. Event-event di user control dijalankan setelah event di web page. Jadi setelah Page Init, dilajutkan user control Init, setelah Page Load, User control Load dijalankan. User control juga bisa menyebabkan PostBack ke web page.

Read the rest of this entry

ASP.net: Antara Label dan Literal Control

Selama ini, untuk menampilkan teks di ASP.net saya lebih sering menuliskan langsung di tag HTML atau menggunakan label kontrol untuk teks yang dinamis. Ketika saya menemukan artikel yang mengatakan bahwa menampilkan teks dinamis di label control secara tidak hati-hati ternyata dapat membuat web yang kita bangun rawan terhadap Cross-site scripting (XSS) dan banyaknya tag html yang terbentuk karena banyaknya label yang saya gunakan. Saya lalu mulai melirik ke kontrol lain yang selama ini tidak pernah saya gunakan sama sekali, LiteralControl.

Read the rest of this entry

Solusi Mengatasi Kerentanan Sistem Keamanan ASP.net

Informasi penting ini saya peroleh dari forum, dan agar tidak susah mencarinya, saya catat saja disini.

Informasi mengenai kerentanan sistem keamanan aplikasi ASP.net.
Akibat dari kerentanan sistem keamanan ini:

  1. Orang bisa melakukan request atau mendownload file Web.Config yang biasanya berisi informasi data sensitif seperti koneksi database.
  2. Orang bisa membaca informasi viewstate yang dikirim ke client, bahkan tidak hanya viewstate tapi juga informasi lain yang terencrypt dan dikirim ke client.

Bagaimana mengatasi masalah keamanan ini?

Read the rest of this entry