【问题标题】:asp.net menu control adapter disable javascriptasp.net 菜单控制适配器禁用 javascript
【发布时间】:2012-11-27 19:59:01
【问题描述】:

您好,我正在尝试为菜单控件编写控件适配器。 但是如何阻止它加载 javascript?

它呈现以下行 new Sys.WebForms.Menu({ element: 'menu1', disappearAfter: 500, orientation: 'vertical', tabIndex: 0, disabled: false }); 我找不到阻止它的方法..

Public Class MenuAdapter
    Inherits WebControlAdapter

    Private ReadOnly Property Menu As Menu
        Get
            Return CType(MyBase.Control, Menu)
        End Get
    End Property

    Protected Overrides Sub RenderBeginTag(writer As System.Web.UI.HtmlTextWriter)
        If (Not String.IsNullOrEmpty(Control.ClientID)) Then
            writer.AddAttribute(HtmlTextWriterAttribute.Id, Control.ClientID)
        End If
        If (Not String.IsNullOrEmpty(Control.CssClass)) Then
            writer.AddAttribute(HtmlTextWriterAttribute.Class, Control.CssClass)
        End If
        writer.RenderBeginTag(HtmlTextWriterTag.Ul)

    End Sub

    Protected Overrides Sub RenderEndTag(writer As System.Web.UI.HtmlTextWriter)
        writer.WriteLine()
        writer.RenderEndTag()
    End Sub

    Protected Overrides Sub RenderContents(writer As System.Web.UI.HtmlTextWriter)
        RenderItems(writer, Menu.Items)
    End Sub

    Private Sub RenderItems(writer As System.Web.UI.HtmlTextWriter, menuItems As MenuItemCollection)
        For Each menuItem As MenuItem In Menu.Items
            If (HttpContext.Current.Server.MapPath(menuItem.NavigateUrl).Equals(HttpContext.Current.Request.PhysicalPath, StringComparison.OrdinalIgnoreCase)) Then
                writer.AddAttribute("class", Menu.StaticSelectedStyle.CssClass)
            End If
            writer.RenderBeginTag(HtmlTextWriterTag.Li)
            If (Not String.IsNullOrEmpty(menuItem.NavigateUrl)) Then
                writer.AddAttribute(HtmlTextWriterAttribute.Href, Menu.ResolveClientUrl(menuItem.NavigateUrl))
                writer.RenderBeginTag(HtmlTextWriterTag.A)
                writer.Write(menuItem.Text)
                writer.RenderEndTag()
            Else
                writer.Write(menuItem.Text)
            End If
            If (menuItem.ChildItems.Count > 0) Then
                RenderBeginTag(writer)
                RenderItems(writer, menuItem.ChildItems)
                RenderEndTag(writer)
            End If
            writer.RenderEndTag()
        Next
    End Sub

End Class

【问题讨论】:

    标签: asp.net control-adapter


    【解决方案1】:

    重写 OnPreRender 而不调用基方法似乎可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 2012-12-28
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 2010-10-13
      相关资源
      最近更新 更多