Sharepoint 2007 sharepoint Web部件开发

Sharepoint 2007 sharepoint Web部件开发,sharepoint-2007,Sharepoint 2007,我只知道使用VisualStudio开发Web部件的两种方法 第一个: 添加一个webpart项目并用适当的方法编写代码 protected override void OnInit(EventArgs e) protected override void OnLoad(EventArgs e) protected override void CreateChildControls() protected override void LoadViewState(object savedState

我只知道使用VisualStudio开发Web部件的两种方法

第一个

添加一个webpart项目并用适当的方法编写代码

protected override void OnInit(EventArgs e)
protected override void OnLoad(EventArgs e)
protected override void CreateChildControls()
protected override void LoadViewState(object savedState) //Only at Postback
protected override void OnPreRender(EventArgs e)
protected override void Render(System.Web.UI.HtmlTextWriter writer)
protected override void OnUnload(EventArgs e)
public override void Dispose()
直接从VS部署解决方案。获取WSP文件并使用STSADM.EXE跨站点/场部署。这是要遵循的标准方法

第二种方法:

创建用户控件并将Usercontrol.ascx和Usercontrol.ascx.cs复制到_布局

创建新的Web部件项目并使用

_UserControl = this.Page.LoadControl("\\_layouts\\_UserControl.ascx");
并从VS部署它

但是这种方法看起来并不安全,因为我们正在手动复制到_布局

我们采用这种方法的唯一原因是,我们可以以我们想要的方式显示控件,而不必费心去查看Web部件生命周期中的各种事件

有人能告诉我你们公司采取什么方法吗

多谢各位


Hari Gillala

肯定是第二个,只要看看2010年的可视化Web部件(它们的构建方式与此完全相同)。

肯定是第二个,只要看看2010年的可视化Web部件(它们的构建方式与此完全相同)。

sp2007,无论哪种方式都很好,这取决于您喜欢如何构建控制树。我喜欢第一种方法

sp2010您还有一些选择

1) 您的第一选择应该是使用代码构建方法的沙盒web部件

2) 如果这太有限,您可以尝试一个可视化web部件,类似于sp2007中的智能部件


3) 还有标准的基于代码的方法。

sp2007,无论哪种方法都可以,这取决于您喜欢如何构建控制树。我喜欢第一种方法

sp2010您还有一些选择

1) 您的第一选择应该是使用代码构建方法的沙盒web部件

2) 如果这太有限,您可以尝试一个可视化web部件,类似于sp2007中的智能部件


3) 还有标准的基于代码的方法。

当我开始在SharePoint 2007中开发时,我们使用了您描述的第一种方法。过了一段时间,我们转向第二种方法

但是,我们没有将ascx文件放在布局中,而是将它们放在controltemplates下的自定义目录中。我们的web部件代码如下所示:

public class OurControlWebPart : WebPart 
{
    protected override void CreateChildControls()
    {
        base.CreateChildControls();
        Control userControl = 
            Page.LoadControl("~/_controltemplates/OurProject/OurControl.ascx");
        Controls.Add(userControl);
    }
}
如果我们的web部件有任何附加属性或ToolPart,它们将在此类中处理,然后转发到控件类。我非常喜欢将控件的逻辑与web部件的逻辑分离。另外,我喜欢能够用HTML或使用VisualStudio设计器控制控件的布局


而且这些文件不需要手动部署。然后可以包含在您的解决方案包中。就像您有一个将功能部署到12\TEMPLATE\features目录的路径一样,您可以将ascx文件部署到12\TEMPLATE\CONTROLTEMPLATES。

当我开始在SharePoint 2007中开发时,我们使用了您描述的第一种方法。过了一段时间,我们转向第二种方法

但是,我们没有将ascx文件放在布局中,而是将它们放在controltemplates下的自定义目录中。我们的web部件代码如下所示:

public class OurControlWebPart : WebPart 
{
    protected override void CreateChildControls()
    {
        base.CreateChildControls();
        Control userControl = 
            Page.LoadControl("~/_controltemplates/OurProject/OurControl.ascx");
        Controls.Add(userControl);
    }
}
如果我们的web部件有任何附加属性或ToolPart,它们将在此类中处理,然后转发到控件类。我非常喜欢将控件的逻辑与web部件的逻辑分离。另外,我喜欢能够用HTML或使用VisualStudio设计器控制控件的布局

而且这些文件不需要手动部署。然后可以包含在您的解决方案包中。就像您有一个将功能部署到12\TEMPLATE\features目录的路径一样,您可以将ascx文件部署到12\TEMPLATE\CONTROLTEMPLATES