laughee

MOSS webpart(vb)
laughee | Jan 23, 2008 4:20:56 AM

webpart(vb)

一.建立WEB项目
    建usercontrol(.ascx),这个是可视化的,所以就不用怕做出来的不好看了.
    不过建.ascx要注意一点就是要把.ascx文件头的<%control%>标签中的"CodeBehind"和"Inherited"等属性去掉,目的是使其不用依赖于.ascx.cs文件.
二.建立Web Part Library 项目
    在根目录下建立bin文件夹,把之前建的.ascx文件放入bin文件夹内.
    以下是.vb文件与.dwp文件的代码(请看仔细那个红色代码吆) 

1.WebPart1.vb

Imports System

Imports System.ComponentModel

Imports System.Web.UI

Imports System.Web.UI.WebControls

Imports System.Xml.Serialization

Imports Microsoft.SharePoint

Imports Microsoft.SharePoint.Utilities

Imports Microsoft.SharePoint.WebPartPages

 

'Description for WebPart1.

<DefaultProperty("Text"), ToolboxData("<{0}:WebPart1 runat=server></{0}:WebPart1>"), XmlRoot(Namespace:="Test")> _

Public Class WebPart1

    Inherits Microsoft.SharePoint.WebPartPages.WebPart

 

    Private Const _defaultText As String = ""

    Dim _innerUserControl As System.Web.UI.Control

 

    Dim _text As String = _defaultText

 

    <Browsable(true),Category("Miscellaneous"), DefaultValue(_defaultText),WebPartStorage(Storage.Personal),FriendlyName("Text"),Description("Text Property")> _

    Property [Text]() As String

        Get

            Return _text

        End Get

 

        Set(ByVal Value As String)

            _text = Value

        End Set

    End Property

 

    'This method gets the custom tool parts for this Web Part by overriding the

    'GetToolParts method of the WebPart base class. You must implement

    'custom tool parts in a separate class that derives from

    'Microsoft.SharePoint.WebPartPages.ToolPart.

    'Returns an array of references to ToolPart objects.

'   Public Overrides Function GetToolParts()As ToolPart()

'       Dim toolParts(2) As ToolPart  

'        Dim wptp As WebPartToolPart = New WebPartToolPart()

'        Dim custom As CustomPropertyToolPart  = New CustomPropertyToolPart()

'        toolParts(0) = wptp

'        toolParts(1) = custom

'        Return toolParts

'   End Function

 

    'Render this Web Part to the output parameter specified.

    Protected Overrides Sub RenderWebPart(ByVal output As System.Web.UI.HtmlTextWriter)

        output.Write(SPEncode.HtmlEncode([Text]))

 

        Me.EnsureChildControls()

        _innerUserControl.RenderControl(output)

 

    End Sub

 

    Protected Overrides Sub CreateChildControls()

        _innerUserControl = Me.Page.LoadControl("/bin/WebUserControl1.ascx")

        Me.Controls.Add(_innerUserControl)

    End Sub

 

 

End Class

 

2.WebPart1.dwp

<?xml version="1.0" encoding="utf-8"?>

<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" >

     <Title>WebPart_test_jing</Title>

     <Description>WebPart_test_jing.</Description>

     <Assembly>Test</Assembly>

     <TypeName>Test.WebPart1</TypeName>

     <!-- Specify initial values for any additional base class or custom properties here. -->

</WebPart>

注:<Assembly>Test</Assembly>中要写上打包后的.dll文件的名字,千万不要加.dll呀

   <TypeName>Test.WebPart1</TypeName>中要写上Namespace名字加上"."加上Class名字

 

三.在SPS服务器上打开SPS站点虚拟主机的根目录,编辑web.config文件

    找到<SafeControls>标签,把下面的内容加入

<SafeControl Assembly="Test " Namespace="Test " TypeName="*" Safe="True" />

 

四.把Web项目的.ascx与Web part library项目的.dll文件放入SPS站点的虚拟主机的根目录下的bin目录下.

 

五.在Portal的网页上,编辑网页处,导入.dwp文件.这步是在图形介面上完成的,我就不多讲了.

   

这个是成功案例,不要怀疑我.

Tag: MOSS

Comment: (no reply)
To post your comment, Please login first.