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.

Tentang Yuniar

Penulis lebih banyak bekerja menggunakan teknologi Microsoft ASP.net terutama yang berkaitan dengan aplikasi MapXtreme.net dari MapInfo. Tapi sekarang udah tidak pernah lagi membuat aplikasi MapXtreme.

Posted on 1 November 2011, in ASP.net and tagged , . Bookmark the permalink. Tinggalkan sebuah Komentar.

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

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

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.