
User Control Code behind – ASP.NET
September 28, 2008Tentu kamu sudah tau ya bahwa code behind bisa dipanggil dari halaman aspx maupun user control ascx. Akan tetapi ada sedikit perbedaan dalam cara pemanggilannya. Bila code behind dipanggil dari halaman aspx maka yang akan di-inherits pada page directive. Jadi untuk memanggil code behind didalam aspx contoh penulisannya adalah sebagai berikut :
<%@ Page Language="VB"
Inherits=”namaClass”
Src=”namaClass.vb” %>
Adapun pada user control kita akan memanggil file code tersebut dengan penulisan sebagai berikut :
<%@ Control
Inherits=”UserControlClass”
Src=”UserControlClass.vb” %>
Pada halaman aspx kita dapat melihat bahwa yang di-inherits adalah page Class karena file tersebut akan ditampilkan pada object page. Adapun pada user control (file ascx) yang di inherits adalah UserControl Class yang ada di System.UI.Namespace.
Control ASP.NET
Supaya lebih paham berikut ini adalah contoh penggunaan code-behind user control. Disini user control akan terdiri dari satu label dan satu datagrid. Tuliskan script berikut dan simpan dengan nama controlTampilan.ascx
<%@ Control Inherits="dbMusic" src="dbMusic.vb" %>
CellPadding=”2″ CellSpacing=”2″ GridLines=”none”
BorderStyle=”solid” BorderColor=”black” BorderWidth=”1″
font-size=”x-small” font-names=”verdana”>
DataField=”cdPrice”
HeaderText=”Harga” />
Pada kode diatas yang akan di inherits adalah dbMusic class yang ada pada file dbMusic.vb. Label dan DataGrid yang ada dalam user control ini akan diakses menggunakan class code-behind.
Code Behind User Control
Berikutnya kita akan membuat code-behind yang akan digunakan untuk user control. Database yang digunakan pada contoh ini adalah dbMusic.mdb. Codenya adalah sebagai berikut (simpan dengan nama dbMusic.vb).:
Imports System
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Data
Imports System.Data.OleDB
Public Class dbMusic : Inherits UserControl
Public dgMusic As DataGrid
Public lblJudul As Label
public Property JudulProp As String
Get
Return lblJudul.Text
End Get
Set
lblJudul.Text = Value
End Set
End Property
Public Sub Page_Load(Source As Object, E As EventArgs)
Dim dbConn As OleDbConnection
Dim dbReader As OleDbDataReader
Dim dbCommand As OleDbCommand
Dim dbAdapter As OleDbDataAdapter
Dim ds As DataSet = New DataSet()
Dim strSql as String
dbConn = New OleDbConnection( _
“Provider=Microsoft.Jet.OleDb.4.0;” & _
“Data Source=” & Server.MapPath(“database/dbMusic.mdb”))
dbConn.Open()
strSql = “Select * From tblCD”
dbAdapter = New OleDbAdapter(strSql, dbConn)
dbAdapter.Fill(ds,”tblCD”)
dgMusic.DataSource = ds.Tables(“tblCD”)
dgMusic.DataBind()
End Sub
End Class
Pada contoh diatas kita lihat label control dan datagrid control yang ada di user control juga didevinisikan lagi disini, sehingga kedua kontrol tersebut bisa diakses dari file ini.
Code Behind Page
Berikutnya kita akan membuat sebuah contoh code behind untuk sebuah halaman aspx. Kodenya adalah sebagai berikut (simpan dengan nama LoadData.vb):
Option Strict Off
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Public Class LoadData : Inherits Page
Public lblHasil As Label
Public Sub Page_Load(Source As Object, E As EventArgs)
Dim tempUserControl = Page.LoadControl(“controlTampilan.ascx”)
tempUserControl.judulProp = “Hasil Dari Database”
lblHasil.Controls.Add(tempUserControl)
End Sub
End Class
Pada kode diatas terlihat bahwa LoadData.vb menjadikan lblHasil sebagai kontrol untuk menampung data yang ada di UserControl. Dengan me-load user control menggunakan program, kita bisa mengakses property dan method yang dimilikinya. Perlu diperhatikan bahwa ketika variabel untuk user control didefinisikan, tipe datanya tidak disebutkan. Untuk itu kita memaksa Option Strict menjadi Off. Hal ini memperbolehkan Object menginherit property dan method dari user control ketika akan diload. Setelah user control selesai diload ke Page Control Colection dan nilai property sudah di set, kita akan menambahkan ke label control.
Menampilkan Data
Untuk menampilkan data yang sudah dibahas kedalam browser, halaman aspx akan menginherit file code yang ada di LoadData.vb. Kodenya adalah sebagai berikut (Simpan dengan nama terserah.aspx) :
<%@ Page Language="VB" Inherits="LoadData" Src="LoadData.vb" %>
Bila dijalankan pada browser hasilnya adalah sebagai berikut :
Nah mungkin ada tambahan masukan atau pertanyaan? Silahkan posting dibawah…. thanks





tambh dunk. aku lagi butuh sejarah ASP.NET