• 我的第一个SharePoint WebPart


    本文是我的第一个WebPart开发过程,参考文档演练:为 SharePoint 创建 Web 部件

    1. 启动Visual Studio 2010,新建一SharePoint项目,项目模板选择SharePoint > 2010 > 空白SharePoint项目。确定项目名称和存放位置后点击“确定”按钮。

    2. 指定用于调试的SharePoint网站和安全级别:注意:这里我们选择“部署为场解决方案”。点击“完成”按钮,项目创建成功。

    3. 为新建的SharePoint项目添加新项,项目模版选择SharePoint > 2010 > Web部件。确定部件名称后点击“添加”按钮。

    4. 打开新添加Web部件的代码文件(本文中是WebPart1.cs),用下面的代码替换。

    using System;
    using System.ComponentModel;
    using System.Data;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    
    namespace HelloWebPart.WebPart1
    {
        [ToolboxItemAttribute(false)]
        public class WebPart1 : WebPart
        {
            private DataGrid grid;
            private static string verbText = "Show Managers Only";
            private Label errorMessage = new Label();
            protected string xmlFilePath;
    
            [Personalizable(PersonalizationScope.Shared), WebBrowsable(true),
            WebDisplayName("Path to Employee Data File"),
            WebDescription("Location of the XML file that contains employee data")]
            public string DataFilePath
            {
                get
                {
                    return xmlFilePath;
                }
                set
                {
                    xmlFilePath = value;
                }
            }
    
            protected override void CreateChildControls()
            {
                // Define the grid control that displays employee data in the Web Part.
                grid = new DataGrid();
                grid.Width = Unit.Percentage(100);
                grid.GridLines = GridLines.Horizontal;
                grid.HeaderStyle.CssClass = "ms-vh2";
                grid.CellPadding = 2;
                grid.BorderWidth = Unit.Pixel(5);
                grid.HeaderStyle.Font.Bold = true;
                grid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
    
                // Populate the grid control with data in the employee data file.
                try
                {
                    DataSet dataset = new DataSet();
                    dataset.ReadXml(xmlFilePath, XmlReadMode.InferSchema);
                    grid.DataSource = dataset;
                    grid.DataBind();
                }
                catch (Exception x)
                {
                    errorMessage.Text += x.Message;
                }
    
                // Add control to the controls collection of the Web Part.
                Controls.Add(grid);
                Controls.Add(errorMessage);
                base.CreateChildControls();
            }
    
            public override WebPartVerbCollection Verbs
            {
                get
                {
                    WebPartVerb customVerb = new WebPartVerb("Manager_Filter_Verb",
                        new WebPartEventHandler(CustomVerbEventHandler));
    
                    customVerb.Text = verbText;
                    customVerb.Description = "Shows only employees that are managers";
    
                    WebPartVerb[] newVerbs = new WebPartVerb[] { customVerb };
    
                    return new WebPartVerbCollection(base.Verbs, newVerbs);
                }
            }
    
            protected void CustomVerbEventHandler(object sender, WebPartEventArgs args)
            {
                int titleColumn = 2;
    
                foreach (DataGridItem item in grid.Items)
                {
                    if (item.Cells[titleColumn].Text != "Manager")
                    {
                        if (item.Visible == true)
                        {
                            item.Visible = false;
                        }
                        else
                        {
                            item.Visible = true;
                        }
                    }
    
                }
                if (verbText == "Show Managers Only")
                {
                    verbText = "Show All Employees";
                }
                else
                {
                    verbText = "Show Managers Only";
                }
            }
        }
    }


    5. 将下面的XML内容保存到一个文件,这里以C:\Shared Folders\Tutorials\HelloWebPart\HelloWebPart\data.xml为例。

    <?xml version="1.0" encoding="utf-8" ?>
        <employees xmlns="http://schemas.microsoft.com/vsto/samples">
           <employee>
               <name>David Hamilton</name>
               <hireDate>2001-05-11</hireDate>
               <title>Sales Associate</title>
           </employee>
           <employee>
               <name>Karina Leal</name>
               <hireDate>1999-04-01</hireDate>
               <title>Manager</title>
           </employee>
           <employee>
               <name>Nancy Davolio</name>
               <hireDate>1992-05-01</hireDate>
               <title>Sales Associate</title>
           </employee>
           <employee>
               <name>Steven Buchanan</name>
               <hireDate>1955-03-04</hireDate>
               <title>Manager</title>
           </employee>
           <employee>
               <name>Suyama Michael</name>
               <hireDate>1963-07-02</hireDate>
               <title>Sales Associate</title>
           </employee>
        </employees>

    6. 在 Visual Studio 中按F5”,启动调试SharePoint项目,SharePoint 网站将自动打开。单击网站操作”,然后单击更多选项”,出现选择创建类型窗口。我们选择“Web部件页”类型,然后点击右边的“创建”按钮。

     

    7. 在新建Web部件页页面,输入页面的名称,然后点击“创建”按钮。

     

    8. Web部件页内容编辑页面被打开,见下图。

     

    9. 点击页眉区域的“添加Web部件”链接,从“类别”列表中选择“Custom”,从“Web部件”列表中选择“WebPart1”(这里的名称就是我们在第3步添加的WebPart名称),然后点击“添加”按钮。

    10. WebPart1部件被成功的添加到了页面,下图红框。

    11. 点击WebPart1右上角的箭头,然后点击“编辑Web部件”。

    12. Web部件属性窗格在右侧被打开。展开杂项节点,输入先前创建的 XML 文件的路径(C:\Shared Folders\Tutorials\HelloWebPart\HelloWebPart\data.xml),然后点击确定”按钮

    13. XML文件的内容被成功的显示在了WebPart1部件里。

    14. 点击WebPart1右上角的箭头,然后再点击“Show Manager Only”或“Show All Employees”,还可以实现显示数据范围的切换。

  • 相关阅读:
    js 删除数组的某一项或者几项的方法
    JavaScript 面向对象的程序设计(一)之理解对象属性
    iview 之 穿梭框 transfer
    iview2.0 bug之+8 区的 DatePicker
    js Object.keys 用法
    js map 、filter 、forEach 、every、some 的用法
    iview tree 之如何获取已勾选的节点
    js 中常见的深拷贝的方法
    ES6新特性
    Amazon2014在线笔试 第三题
  • 原文地址:https://www.cnblogs.com/eastson/p/2534813.html
Copyright © 2020-2023  润新知