一个简单的下拉菜单webpart

        昨天在MSDN看到使用 JavaScript 创建 FrontPage 下拉菜单,可以很容易的将其转换为一个简单的webpart . 

        代码如下:
   Dim includeScript As String
    
Dim myOutput As String = ""
    Private Const ClientSideFileName As String = "mymenu.js"
    Private Const CSSFileName As String = "mymenu.css"
    Private Const ClientSideCodeIncludeScriptKey As String = "ClientSideCodeIncludeScriptMenu"
    Private Const ClientSideCodeIncludeCSSKey As String = "ClientSideCodeIncludeCSS"
    Private Const IncludeScriptFormat As String = "<script language=""{0}"" src=""{1}{2}""></script>"
    Private Const IncludeCSSFormat As String = "<LINK REL=""StyleSheet"" HREF=""{0}"">"


    Public Sub New()
        
AddHandler Me.PreRender, AddressOf My_PreRender
    
End Sub

    
Sub My_PreRender(ByVal s As ObjectByVal e As EventArgs)
        
If Not (Page.IsClientScriptBlockRegistered(ClientSideCodeIncludeScriptKey)) Then
            
Dim Location As String = "/wpresources/SPSMenu/"
            myOutput = Location
            includeScript 
= String.Format(IncludeScriptFormat, "javascript", Location, ClientSideFileName)
            Page.RegisterClientScriptBlock(ClientSideCodeIncludeScriptKey, includeScript)
        
End If
        
If Not (Page.IsClientScriptBlockRegistered(ClientSideCodeIncludeCSSKey)) Then
            
Dim Location As String = "/wpresources/SPSMenu/"
            myOutput = Location
            includeScript 
= String.Format(IncludeCSSFormat, Location & CSSFileName)
            Page.RegisterClientScriptBlock(ClientSideCodeIncludeCSSKey, includeScript)
        
End If
    
End Sub
    当然还要指定其JS 文件以及CSS 文件的位置:

Protected Overrides Sub CreateChildControls()
        Controls.Add(
New LiteralControl("<table class='navbar' width='250'>"))
        Controls.Add(
New LiteralControl("<tr>"))
        Controls.Add(
New LiteralControl("<td class='menuNormal' width='200' onmouseover='expand(this);' onmouseout='collapse(this);'>"))
        Controls.Add(
New LiteralControl("<p>文档库Document Library</p>"))
        Controls.Add(
New LiteralControl("<div class='menuNormal' width='155'>"))
        Controls.Add(
New LiteralControl("<table class='menu' width='155'>"))
        Controls.Add(
New LiteralControl("<tr><td class='menuNormal'><a HREF='#' class='menuitem'>Company</a></td></tr>"))
        Controls.Add(
New LiteralControl("<tr><td class='menuNormal'><a HREF='#' class='menuitem'>priority</a></td></tr>"))
        Controls.Add(
New LiteralControl("<tr><td class='menuNormal'><a HREF='#' class='menuitem'>Research</a></td></tr>"))
        Controls.Add(
New LiteralControl("<tr><td class='menuNormal'><a HREF='#' class='menuitem'>Documents</a></td></tr>"))
        Controls.Add(
New LiteralControl("<tr><td class='menuNormal'><a HREF='#' class='menuitem'>Report</a></td></tr>"))
        Controls.Add(
New LiteralControl("<tr><td class='menuNormal'><a HREF='#' class='menuitem'>Product</a></td></tr>"))
        Controls.Add(
New LiteralControl("<tr><td class='menuNormal'><a HREF='#' class='menuitem'>Other Files</a></td></tr>"))

        Controls.Add(
New LiteralControl("</table>"))
        Controls.Add(
New LiteralControl("</div>"))
        Controls.Add(
New LiteralControl("</td>"))
        Controls.Add(
New LiteralControl("</tr>"))
        Controls.Add(
New LiteralControl("</table>"))
    
End Sub
        在Manifest.xml指定资源:

<?xml version="1.0"?>
<!-- You need only one manifest per CAB project for Web Part Deployment.-->
<!-- This manifest file can have multiple assembly nodes.-->
<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">
  
<Assemblies>
    
<Assembly FileName="SPSMenu.dll">
    
<!-- Use the <ClassResource> tag to specify resources like image files or JScript files that your Web Parts use. -->
    
<!-- Note that you must use relative paths when specifying resource files. -->
      
      
<ClassResources>
        
<ClassResource FileName="mymenu.css"/>
        
<ClassResource FileName="mymenu.js"/>
      
</ClassResources>
 
      
<SafeControls>
        
<SafeControl
          
Namespace="SPSMenu"
          TypeName
="*"
        
/>
      
</SafeControls>
    
</Assembly>
  
</Assemblies>
  
<DwpFiles>
    
<DwpFile FileName="SPSMenu.dwp"/>
  
</DwpFiles>
</WebPartManifest>


    然后就可以一个webpart,将其部署完成以后,我们可以看到如下一个简单的下拉菜单:

posted on 2005-02-03 14:00  郭岩  阅读(2258)  评论(0编辑  收藏  举报