Arsip Blog

Menampilkan UserControl (.ascx) Secara Dinamis

Usercontrol (.ascx) paling umum digunakan untuk menampilkan header dan footer. Bagaimana menampilkan usercontrol yang berbeda-beda di suatu halaman sesuai kondisi tertentu. Misalnya ketika user A login, maka usercontrol A yang di load, user lainnya menggunakan usercontrol B.

1. Tambahkan reference di halaman page (.aspx) di bagian page directive.

<%@ Reference Control="~/WebUserControlA.ascx" %>
<%@ Reference Control="~/WebUserControlB.ascx" %>

2. Tambahkan control placeholder di halaman page. Placeholder ini digunakan sebagai lokasi dimana usercontrol yang di load akan diletakkan.

<asp:PlaceHolder ID="placeholder1" runat="server"></asp:PlaceHolder>

3.Di code, tambahkan kode di bagian Page_Init. Misal userlogin adalah userA, maka webusercontrolA yang diload.

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    If Session("USERLOGIN").ToString() = "userA" Then
        Dim head As WebUserControlA = DirectCast(Page.LoadControl("~/WebUserControlA.ascx"), WebUserControlA)
        placeholder1.Controls.Add(head)
    Else
        Dim head As WebUserControlB = DirectCast(Page.LoadControl("~/WebUserControlB.ascx"), WebUserControlB)
        placeholder1.Controls.Add(head)
    End If
End Sub

Usercontrol akan di load di placeholder. Semoga bermanfaat.

Iklan

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