<ParseChildren(True), PersistChildren(False), _
Designer("PopupMenuDesigner"), _
ToolboxData("<{0}:PopupMenu runat=server></{0}:PopupMenu>")> _
Public Class PopupMenu
Inherits System.Web.UI.Control
Private _items As ListItemCollection
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content) _
, PersistenceMode(PersistenceMode.InnerProperty), _
Category("Misc"), DefaultValue(""), _
Description("")> _
ReadOnly Property PopupMenuItems() As ListItemCollection
Get
Return _items
End Get
End Property
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Call CreatDivTag(writer)
MyBase.Render(writer)
End Sub
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
MyBase.OnPreRender(e)
Call CreatCssTag()
Call CreatJsTag()
End Sub
Private Sub CreatDivTag(ByVal output As System.Web.UI.HtmlTextWriter)
Dim strDivHtml As String
Dim i As ListItem
For Each i In PopupMenuItems
strDivHtml = strDivHtml _
& " <div class='menuitems' target='_blank' " _
& " url='" & i.Value & "'>" & i.Text & "</div>"
Next
strDivHtml = strDivHtml & "</div>"
output.Write(strDivHtml)
End If
End Sub
Private Sub CreatJsTag()
Dim strJsSrc As String
strJsSrc = "<script language=""javascript"" src=""js/CasioJinjiControl.js""></script>"
Page.RegisterClientScriptBlock("IncludeJs", strJsSrc)
End Sub
Private Sub CreatCssTag()
Dim strCssHtml As String
Page.RegisterClientScriptBlock("PopupMenuCss", strCssHtml)
End If
End Sub
Public Sub New()
_items = New ListItemCollection
End Sub
End Class
2---------------
在另一个控件中添加一个属性与以上的控件想结合就行了
<Category("Appearance"), DefaultValue("")> Property PopupMenu() As String
Get
Return _strPopupMenu
End Get
Set(ByVal Value As String)
_strPopupMenu = Value
End Set
End Property
-------------------------
If Not PopupMenu Is Nothing Then
If CType(Page.FindControl(PopupMenu), PopupMenu).PopupMenuItems.Count <> 0 Then
writer.AddAttribute("oncontextmenu", _
"javascript:ShowPopupMenu(" & PopupMenu & ");")
End If
End If