怎样给自定义的dropdownlist控件加单击事件

Yurixu 2004-04-22 11:23:07
我自定义了一个dropdownlist控件,需要右击控件弹出一个菜单。
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yurixu 2004-04-28
  • 打赏
  • 举报
回复
先试一下,能用就结了
fsvision 2004-04-28
  • 打赏
  • 举报
回复
1---------
imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls

<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

If PopupMenuItems.Count <> 0 Then
strDivHtml = "<div id=" & Me.ClientID & " style='z-index:10000;'" _
& " class='skin0' onmouseover='javascript:HighItimLight();'" _
& " onMouseout='javascript:LowItemLight();' onClick='JumpToUrl();'" _
& " onfocusout='HidePopupMenu(" & Me.ClientID & ")'>"

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

If PopupMenuItems.Count <> 0 Then
strCssHtml = "<style>" _
& " .skin0" _
& " {BORDER-RIGHT: black 2px solid;" _
& " BORDER-TOP: black 2px solid; VISIBILITY: hidden;" _
& " BORDER-LEFT: black 2px solid; WIDTH: 200px; CURSOR: default;" _
& " LINE-HEIGHT: 20px; BORDER-BOTTOM: black 2px solid; FONT-FAMILY: Verdana;" _
& " POSITION: absolute; BACKGROUND-COLOR: menu; TEXT-ALIGN: left}" _
& " .skin1" _
& " {BORDER-RIGHT: buttonhighlight 2px outset;" _
& " BORDER-TOP: buttonhighlight 2px outset; FONT-SIZE: 10pt;" _
& " VISIBILITY: hidden; BORDER-LEFT: buttonhighlight 2px outset;" _
& " WIDTH: 120px; CURSOR: default;" _
& " BORDER-BOTTOM: buttonhighlight 2px outset;" _
& " FONT-FAMILY: Arial, Helvetica, sans-serif; POSITION: absolute;" _
& " BACKGROUND-COLOR: menu; TEXT-ALIGN: left}" _
& " .menuitems" _
& " {PADDING-RIGHT: 10px; PADDING-LEFT: 15px}" _

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
Yurixu 2004-04-22
  • 打赏
  • 举报
回复
这个问题很难吗?
来顶一下呀!!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧