C# 在sharepoint自定义Web部件中使用asp.net用户控件

C# 在sharepoint自定义Web部件中使用asp.net用户控件,c#,sharepoint,user-controls,sharepoint-2007,C#,Sharepoint,User Controls,Sharepoint 2007,所以我需要创建一个Web部件。我想对设计过程进行一些控制,为控件创建代码,然后构建/编译,等待应用程序回收,然后F5 sharepoint、清洗和重复站点是一件痛苦的事情 我读到,可以创建一个常规用户控件,并在Web部件中加载该控件。我认为这很理想——但是 那么sharepoint的所有内容呢?比如属性、与sharepoint列表交互等等?如何从用户控件中最好地实现这一点 我需要的是一个Web部件,它首先显示sharepoint列表中一个项目的一组信息,其次需要显示另一个sharepoint列表

所以我需要创建一个Web部件。我想对设计过程进行一些控制,为控件创建代码,然后构建/编译,等待应用程序回收,然后F5 sharepoint、清洗和重复站点是一件痛苦的事情

我读到,可以创建一个常规用户控件,并在Web部件中加载该控件。我认为这很理想——但是

那么sharepoint的所有内容呢?比如属性、与sharepoint列表交互等等?如何从用户控件中最好地实现这一点

我需要的是一个Web部件,它首先显示sharepoint列表中一个项目的一组信息,其次需要显示另一个sharepoint列表中项目的可滚动列表

是否有一种奇特的方法可以获得几乎相同的“环境”,或者我应该这样做:

using(SPSite site = new SPSite("http://mysite/")){
    using(SPWeb web = new SPWeb("myWeb")){
         //Fill a listbox with web.lists["myList"];
    }
}

从我的用户控件背后的代码中?

是的,这就是编写方式

只是,您可以编写usercontrol,然后将其托管在包装器Web部件中,而不是直接编写Web部件

这种方法的优点是,您可以使用designer来创建UI元素,该元素在创建usercontrol时可用。对于sharepoint 2007,包装器Web部件已可用,称为智能部件。对于smartpart,您只需提供要加载的用户控件(.ascx)的位置

在sharepoint 2010中,可以使用Visual Studio 2010即时构建smartpart


您必须创建扩展WebPart类的简单web部件。在其中,您可以通过重写方法添加自己的控件。您可以在控件的构造函数中传递任何必需的参数。至于属性,您可以在包装器web部件中描述它们,并将其映射到控件属性