There are quite a few different ways to do this, here's one:
ProgramsDropDownList.vb:
VB Code:
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class ProgramsDropDownList : Inherits DropDownList
Private _privilege As String
Public ReadOnly Property Privilege() As String
Get
Return _privilege
End Get
End Property
Public ReadOnly Property Program() As String
Get
Dim li As ListItem = Me.SelectedItem
If Not li Is Nothing Then
Return li.Value
End If
End Get
End Property
Public ReadOnly Property RedirectUrl() As String
Get
Select Case Me.Program
Case "Menu"
Return "Menu.aspx"
Case "PDI Sales"
Return "PDISales.aspx"
Case "Price Check"
Return "PriceCheck.aspx"
Case "RMS Compare"
Return "RMSCompare.aspx"
Case Else
Return ""
End Select
End Get
End Property
Public Overloads Sub DataBind(ByVal privilege As Object)
If Not privilege Is Nothing AndAlso privilege.ToString() <> "" Then
Me._privilege = privilege.ToString()
Me.ClearSelection()
Me.Items.Add(New ListItem("- Select Program -"))
Me.Items.Add(New ListItem("Menu"))
Me.Items.Add(New ListItem("PDI Sales"))
If Me._privilege = "Administrator" Or Me._privilege = "Executive" Then
Me.Items.Add(New ListItem("Price Check"))
Me.Items.Add(New ListItem("RMS Compare"))
End If
End If
End Sub
End Class
and the aspx page ProgramsDropDownListTest.aspx:
VB Code:
<%@ Register TagPrefix="pvb" Assembly="DeathAngel" Namespace="DeathAngel" %>
<script language="vb" runat="server">
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
If Not Page.IsPostBack Then
ddlPrograms.DataBind(Request.QueryString("privilege"))
If ddlPrograms.Program = "" Then
Response.Redirect ("http://www.microsoft.com")
End If
End If
End Sub
Protected Sub ddlPrograms_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
If ddlPrograms.RedirectUrl <> "" Then
Response.Redirect(ddlPrograms.RedirectUrl)
End If
End Sub
</script>
<html>
<body>
<form runat="server">
<pvb:ProgramsDropDownList ID="ddlPrograms" Runat="server" AutoPostBack="true"
OnSelectedIndexChanged="ddlPrograms_SelectedIndexChanged"/>
</form>
</body>
</html>