• Sharepoint 2010 之 WebPart


     

    Sharepoint 2010 之 WebPart

     

    Sharepoint2010较Sharepoint2007,功能上有了很大的改善,无论在WebPart开发、自定义字段、事件的编写,等等等等,都进行了操作上得简化,使整个项目的建立、部署及调试,都变得极为的简单。

    下面,就让我们开始Sharepoint2010中,WebPart开发的旅程吧。
    1:事先的准备工作
    首先,让我们创建网站集“http://moss:8000”,并在主页上创建员工信息列表,列表名称为“员工列表”,暂且让我们定义四个字段,分别为“员工编号”、“员工姓名”、“出生日期”和“家庭住址”。并添加两条记录,如下图所示:


    那么,本节咱们的工作目的,便是把该列表中的数据,全部(或部分),通过GridView展示到主页面上,让用户在登录系统后,就能非常清楚的看到他所关心的、或感兴趣的数据或内容。比如上面所说的员工的信息等。


    2:创建WebPart
    1) 打开VS2010,在新建项目界面,选择Visual C# →SharePoint→2010,点击右部的“可视Web部件”,并给项目起名“MyFirstWebPart”如下图所示:


    注:由于SharePoint2010是基于.NET Framework3.5的,所以,在进行Sharepoint2010的开发时,无论是WebPart、EventReceiver、还是自定义字段、控制台应用程序,都要选择.NET Framework3.5,而不是4.0,否则将无法引用Microsoft.Sharepoint命名空间(引用的Sharepoint.Dll无效)。
    2)点击确定按钮后,将出现如下图所示对话框:

    在站点地址验证栏中输入你要部署(或调试)的站点地址,并点击验证按钮。在验证Moss地址无误后,点击完成按钮。

    3)编写WebPart代码。首先,在完成上一步工作以后,就进入了编程页面。在页面上添加GridView控件,并修改其属性。如下图所示:

    由于列表中有4个字段,如果想全部显示到主也上的话,那么,咱们通过GridView的编辑列的功能,绑定4个字段,并分别设置HeaderText的值为“员工编号”,“员工姓名”,“家庭地址”和“出生年月”。设置DataField值为“Title”,“_x5458__x5de5__x59d3__x540d_”,“_x5bb6__x5ead__x4f4f__x5740_”和“_x51fa__x751f__x65e5__x671f_” 

    ==========================我是华丽的分界线========================================
    写到这里,咱们不妨暂停一下,来看看“Title”,以及后面的“_x5458__x5de5__x59d3__x540d_”,“_x5bb6__x5ead__x4f4f__x5740_”和“_x51fa__x751f__x65e5__x671f_” 到底是何方神圣!首先,咱们在列表中定义了四个字段,分别为员工编号、员工姓名、家庭住址和出生年月,其中的员工编号字段,我是直接修改了列表自带的“标题”字段,所以,该字段名在数据库中显示为Title。而如果你用中文名来作为栏的名字时,Sharepoint会把中文名转换为xoooo的格式,其中oooo为对应的数字。那么咱们来看下如何获取中文字段名在数据库中对应的名字吧。
    建立控制台应用程序,正如上面的注意点一样,记得选择.NET Framework3.5,而不是4.0   接下来,引用SharePoint.dll,路径为C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14ISAPIMicrosoft.SharePoint.dll ,并引用其命名空间 using Microsoft.SharePoint;  然后编写代码如下:

    [csharp] view plaincopy
    1. static void Main(string[] args)  
    2.         {  
    3.             using (SPSite site = new SPSite("http://moss:8000"))     //http://moss:8000为你自己对应的网站集名称  
    4.             {  
    5.                 using (SPWeb web = site.OpenWeb(""))                //如果你的网站不是在网站集下,需要site.OpenWeb("WebUrl")  WebUrl 为网站的Url  
    6.                 {  
    7.                     SPList list = web.Lists["员工列表"];  
    8.                     foreach (SPField  field in list.Items.Fields )  
    9.                     {  
    10.                         Console.WriteLine("字段名:" +field.Title + "         InternalName:" + field.InternalName );  
    11.                     }  
    12.                 }  
    13.             }  
    14.         }  
    运行控制台应用程序,得到如下结果:

     

    简单的说:在列表中所定义的字段名称(如果为汉字的话),其实相当于你的小名,而这个小名,是不能写到身份证中,他需要转换成Sharepoint能认识的名字(也就是你真正的名字)。通过上面代码的演示,你可以很容易的得到那一长串怪东西究竟是什么玩意儿了。

    友情提示:如果你在执行控制台应用程序的时候,反复的,而且不知道什么原因的得到如下的错误提示的话:

    别害怕,选择解决方案下的类库→右键→属性,在【生成】页面下,修改“目标平台”为“Any CPU”就可以了。如下所示:


    ==========================华丽的分界线Over========================================
    闲话谈完了,继续编写咱们的WebPart代码:
    [csharp] view plaincopy
    1. using System;  
    2. using System.Web.UI;  
    3. using System.Web.UI.WebControls;  
    4. using System.Web.UI.WebControls.WebParts;  
    5. using Microsoft.SharePoint;  
    6.   
    7. namespace MyFirstWebPart.VisualWebPart1  
    8. {  
    9.     public partial class VisualWebPart1UserControl : UserControl  
    10.     {  
    11.         protected void Page_Load(object sender, EventArgs e)  
    12.         {  
    13.             if (!IsPostBack)  
    14.             {  
    15.                 BindData();  
    16.             }  
    17.   
    18.         }  
    19.   
    20.         private void BindData()  
    21.         {  
    22.             SPSecurity.RunWithElevatedPrivileges(delegate() {  
    23.                 SPList list = SPContext.Current.Web.Lists["员工列表"];  
    24.                 SPQuery query = new SPQuery();  
    25.                 query.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='_x5458__x5de5__x59d3__x540d_' /><FieldRef Name='_x5bb6__x5ead__x4f4f__x5740_' /><FieldRef Name='_x51fa__x751f__x65e5__x671f_' />";  
    26.                 this.GridView1.DataSource  = list.GetItems(query).GetDataTable();  
    27.                 this.GridView1.DataBind();  
    28.             });  
    29.         }  
    30.     }  
    31. }  

    当然了,如果你对CAML不太熟悉,完全可以用下面代码来代替,这样将查处所有的字段。(CAML具有较强的条件查询、排序等功能)
    [csharp] view plaincopy
    1. private void BindData()  
    2. {  
    3.     SPSecurity.RunWithElevatedPrivileges(delegate() {  
    4.         SPList list = SPContext.Current.Web.Lists["员工列表"];  
    5.         //SPQuery query = new SPQuery();  
    6.         //query.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='_x5458__x5de5__x59d3__x540d_' /><FieldRef Name='_x5bb6__x5ead__x4f4f__x5740_' /><FieldRef Name='_x51fa__x751f__x65e5__x671f_' />";  
    7.         //this.GridView1.DataSource  = list.GetItems(query).GetDataTable();  
    8.         this.GridView1.DataSource = list.GetItems().GetDataTable();  
    9.         this.GridView1.DataBind();  
    10.     });  
    11. }  
    好了,代码及设计到此结束。下面修改一下咱们的WebPart在页面中的标题:
    打开【VisualWebPart1.webpart】页面,修改Title属性为:<property name="Title" type="string">员工信息展示</property>

    在确认无误的情况下,选择解决方案 → 右键点击→部署解决方案。WebPart的编写及部署到此就告一段落。

    3:页面上添加WebPart
    该部分内容主要将以贴图的形式来介绍。
    1)首先在浏览器中输入咱们的网站地址:http://moss:8000
    2)点击网站操作右边的【页面】按钮,将显示页面对应的菜单:

    3)点击【编辑页面】按钮,将进入页面的设计阶段:
    4)点击【添加Web部件】
    5)在【类别】中选择【Custom】(用户自定义WebPart)
    6)点击【员工信息展示】,并点击添加


    7)点击【停止编辑】按钮,并重新刷新主页,将在主页上显示列表,并展示出列表【员工列表】中的内容。
    【列表内容】

    【首页Gridview内容】


    4:WebPart调试
    webpart的调试比较简单,直接在需要调试的代码处设置断点,并按下F5,就可直接到达调试断点处。



    WebPart部分就为大家介绍到这里,希望对大家有所帮助!
  • 相关阅读:
    Linux 下如何查看一个组内的有哪些用户
    Linux下查看用户列表
    用pureftpd+pureDB虚拟用户,建立一个简单安全(不需要数据库支持)的linux ftp站
    pure-ftp中如何设置匿名帐号,自定义匿名帐号访问指定目录
    PUTTY中永久更改字体大小
    Pure-ftpd 如何配置多用户,且A用户具有上传下载权限,B用户只有下载权限?
    windows10访问ftp中文乱码怎么办?
    WPF DynamicDataDisplay.dll 下载
    C# windows presentation foundation 项目中不支持Application
    c# NDP472-KB4054530-x86-x64-AllOS-CHS下载
  • 原文地址:https://www.cnblogs.com/ningang/p/3617297.html
Copyright © 2020-2023  润新知