【转】使用Feature导入WebPart

原文链接:http://www.cnblogs.com/glife/archive/2009/10/27/1590488.html

前些天在刚刚接触WebPart的时候,搜到了一篇《使用Feature导入WebPart》的文章,那个时候对Feature的了解还为零,所以看了是一知半解,等到今天回望时,发现文章里的内容竟然“缺斤少两”(我晕),郁闷之下,直接到Google上用英文查找,功夫不负有心人,总算被我挖到了另外一篇《Add A Web Part To Your Web Parts Gallery Using A Feature》(使用Feature添加一个WebPart到你的WebPart库?)。

 内容很简单啊,而且有前一篇文章做参考,所以很好理解。然而一试,发现问题多多,似乎作者们只是写出了具体的步骤,而忽略了告诉读者需要注意的小细节(- -),呃呃,于是只能硬着头皮试到底(这里非常感谢谷歌先生的帮忙),最后,光辉迸射的一刻终于到来!

 

【1】简单的讲,我们需要一个做好了的WebPart,比如我用:WebPartForLeadingIn.dll。

 

using System;
using System.Text;
using System.Web.UI.WebControls.WebParts;

namespace WebPartForLeadingIn
{
    public class Wp:WebPart
    {
        private string _Text = "看,我是通过Feature导入的WebPart~";

        [WebBrowsable(true), Personalizable(true)]
        public string Text
        {
            get { return _Text; }
            set { _Text = value; }
        }
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            writer.Write(_Text);
        }
    }
}

 

做强名称这个就不用说了,然后编译。。。 

 

【2】同时最好手动编写一个.webpart文件——这个文件一般在用VS编码时不会产生,在导入到SharePoint后才有,是XML格式的文件。(我命名为Wp.webpart)

 

<?xml version="1.0" encoding="utf-8"?>
<webParts>
    <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
        <metaData>
            <type name="WebPartForLeadingIn.Wp, WebPartForLeadingIn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=437f6f449ff02b7a" />
            <importErrorMessage>无法导入此 Web 部件。</importErrorMessage>
        </metaData>
        <data>
            <properties>
                <property name="Title" type="string">Wp</property>
            </properties>
        </data>
    </webPart>
</webParts>

 

【3】上面两步就把WebPart搞定了,下面开始编写Feature.xml和Element.xml(后面这个文件可以随便命名, 不过记得要在Feature.xml文件里相应的关联部分输入同样的文件名)

◎Feature.xml文件:

<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
         Id="FC3BB8FB-EC18-4ace-9B1D-24333C2C9A6E"
         Title="Leading in WebPart"
         Description="通过Feature导入WebPart"
         Hidden="FALSE"
         Scope="Site">
    <ElementManifests>
        <ElementManifest Location="Element.xml" />
    </ElementManifests>
</Feature>

 

 

 ◎Element.xml文件:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <Module
      Name="WebPartPopulation"
      List="113"
      Url="_catalogs/wp"
      RootWebOnly="TRUE">
        <File Url="Wp.webpart" Type="GhostableInLibrary" />
    </Module>
</Elements>

 

 

 【4】接下来这一步很棒,编写.bat批量文件,省了在cmd敲命令的功夫,而且完全“一步到位” :)

◎ImportWP.bat文件:

 @SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm"

Echo Installing feature

%STSADM% -o InstallFeature -filename WebPartForLeadingIn\feature.xml -force

Echo Activating feature

%STSADM% -o activatefeature -filename WebPartForLeadingIn\feature.xml -url http://gl-5fc632fd62e9:8800/

Iisrest 

 

以上有些地方要根据您的实际情况修改,比如stsadm.exe所在位置,WebPartForLeadingIn是一个文件夹名,http://gl-5fc632fd62e9:8800/是SharePoint网站URL。

 

【5】搞定这些,就万事俱备,只欠东风了。

把 WebPartForLeadingIn.dll 拷到GAC里(C:\WINDOWS\assembly),把Feature.xml、Element.xml、ImportWP.bat、Wp.webprt四个文件拷贝到WebPartForLeadingIn文件夹里,然后将其挪到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\下。

(*这里有两点要注意: 

1)是要到相应的网站下修改web.config,添加SafeControl节点,我的是<SafeControl Assembly="WebPartForLeadingIn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=437f6f449ff02b7a" Namespace="WebPartForLeadingIn" TypeName="*" />。感觉有点昏,不是说放到GAC下的WebPart文件是完全可信的吗,怎么还要设置安全节点? 

2)可能在后面进行Feature激活时会出错,

我自己是通过以下手段解决的:【SharePoint 3.0管理中心】—>【应用程序管理】—>【应用程序安全性】的“Web应用程序的策略”—>选择要激活的网站,【添加用户】—>【区域】选择“所有区域”(也可以选择相应的区域,比如 默认)—>【下一步】—>在“用户”框填上网站管理员帐号,“权限”为“完全控制”—>【完成】

【6】运行ImportWP.bat,然后到您的网站里,看看是不是多了什么东东,我的网站上是这样:

 

好了,如果有兴趣,再到“Web部件”库里看看是不是new出了什么(Wp.webpart!新 ) 。Jesus,还等什么,直接添加到页面上吧~

 

Good luck :) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HDU - 5017】Ellipsoid(爬山算法,模拟退火,三分)

题干&#xff1a; Given a 3-dimension ellipsoid(椭球面) your task is to find the minimal distance between the original point (0,0,0) and points on the ellipsoid. The distance between two points (x 1,y 1,z 1) and (x 2,y 2,z 2) is defined as Input There a…

【转】VSTS中版本控制系统Git与TFVC的区别

VSTS&#xff08;Visual Studio Team Services&#xff09; VSTS简单说就是微软TFS(Team Foundation Services)的升级云版&#xff0c;不用像TFS需要在企业内部服务器上部署&#xff0c;并且是免费提供给用户使用的。 每个有微软账号&#xff08;也是免费注册的&#xff09;的…

【LeetCode - 1254】统计封闭岛屿的数目(dfs,连通块)

题目链接&#xff1a;https://leetcode-cn.com/problems/number-of-closed-islands/ 有一个二维矩阵 grid &#xff0c;每个位置要么是陆地&#xff08;记号为 0 &#xff09;要么是水域&#xff08;记号为 1 &#xff09;。 我们从一块陆地出发&#xff0c;每次可以往上下左…

【转】1.2SharePoint服务器端对象模型 之 对象模型概述(Part 2)

&#xff08;三&#xff09;Url 作为一个B/S体系&#xff0c;在SharePoint的属性、方法参数和返回值中&#xff0c;大量的涉及到了Url&#xff0c;总的来说&#xff0c;涉及到的Url可以分为如下四类&#xff1a; 绝对路径&#xff1a;完整的Url&#xff0c;包含了协议头&…

【转】2.1 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 1)

本节将会介绍SharePoint中最为常用的一些对象模型&#xff0c;以及如何使用这些对象模型来访问和操作网站中的数据。几乎所有的SharePoint服务器端开发都会涉及到这些内容&#xff0c;因此应着重掌握本节中所介绍的基本对象模型的使用方法。由于篇幅所限&#xff0c;在介绍每种…

SharePoint安全 - SharePoint网站常用页面URL索引

一. 主要网站内容 首页 /default.aspx /Pages/default.aspx 网站设置 /_layouts/settings.aspx 所有网站内容 /_layouts/viewlsts.aspx 移动端所有网站内容 /_layouts/mobile/mbllists.aspx 共享文档 /shared documents/forms/allitems.aspx 管理网站内容结构 /_l…

docker安装与学习

安装Docker 系统环境&#xff1a;macOS Catalina 10.15.7 通过brew安装docker brew install --cask --appdir/Applications docker 直接brew install docker装上的好像不是&#xff0c;好像是当成了formula了。如下图 brew cask install docker直接提示命令不对&#xff0c…

集群、分布式、负载均衡区别与联系

1、Linux集群主要分成三大类( 高可用集群&#xff0c; 负载均衡集群&#xff0c;科学计算集群) 集群是一个统称&#xff0c;他分为好几种&#xff0c;如&#xff1a;高性能科学群集、负载均衡群集、高可用性群集等。 科学群集 、高性能集群&#xff08;High performance clus…

Mac下使用brew的常用步骤

以docker为例&#xff1a; 第一步&#xff1a; 先 brew search 软件名 然后发现在Formulae和Casks中都有docker包。 第二步&#xff1a; 分别查看info brew info dockerbrew info homebrew/cask/docker 从详情中可以看出&#xff0c;cask下的才是Docker Desktop for Mac&a…

【机器学习】 - keras中的模型可视化plot_model模块(含依赖包pydot和graphviz的详细安装过程与注意事项)

运行环境&#xff1a; win10 anaconda3-spyder python3.7.4 tensorflow2.0.0 首先需要安装两个包pydot和graphviz&#xff0c;不然会报错&#xff1a; Failed to import pydot. You must install pydot and graphviz for pydotprint to work. 然后去anaconda prompt 里去…

【git学习】统计git项目某user的代码量

查看自己的代码量&#xff1a;&#xff08;直接awk编程&#xff09; git log --author"username" --prettytformat: --numstat | awk { add $1; subs $2; loc $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, …

一步步编写操作系统 79 在c代码中内联汇编

基本内联汇编是最简单的内联形式&#xff0c;其格式为&#xff1a; asm [volatile] (“assembly code”) 各关键字之间可以用空格或制表符分隔也可以紧凑挨在一起不分隔&#xff0c;各部分意义如下&#xff1a; 关键字asm用于声明内联汇编表达式&#xff0c;这是内联汇编固定…

LeetCode 237. 删除链表中的节点(思维)

请编写一个函数&#xff0c;用于 删除单链表中某个特定节点 。在设计函数时需要注意&#xff0c;你无法访问链表的头节点 head &#xff0c;只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 https://leetcode-cn.com/problems/delete-node-in-a-…

LeetCode 397. 整数替换

题目大意&#xff1a; 给定一个正整数 n &#xff0c;你可以做如下操作&#xff1a; 如果 n 是偶数&#xff0c;则用 n / 2替换 n 。 如果 n 是奇数&#xff0c;则可以用 n 1或n - 1替换 n 。 n 变为 1 所需的最小替换次数是多少&#xff1f; 链接&#xff1a;https://leet…

LeetCode 375. 猜数字大小 II

题目大意&#xff1a; https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii 我们正在玩一个猜数游戏&#xff0c;游戏规则如下&#xff1a; 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字&#xff0c;就会 赢得游戏 。 如果你…

【转】2.3SharePoint服务器端对象模型 之 访问网站和列表数据(Part 3)

&#xff08;三&#xff09;视图 与传统意义上的数据视图类似&#xff0c;SharePoint中的列表视图指定了列表中数据的筛选条件、排序条件、分组条件、显示栏/字段、显示条目数、显示样式等内容。在SharePoint中&#xff0c;使用SPView表示列表视图&#xff0c;使用SPViewColle…

【转】2.4SharePoint服务器端对象模型 之 访问网站和列表数据(Part 4)

&#xff08;四&#xff09;栏/字段 SharePoint中的字段&#xff08;中文版中叫做“栏”&#xff09;与传统的数据栏类似&#xff0c;也有不同类型的区别&#xff0c;不过SharePoint中内置的栏类型除了按照数据类型&#xff08;如数字、日期和时间等&#xff09;进行区分之外&…

【转】2.5SharePoint服务器端对象模型 之 访问网站和列表数据(Part 5)

&#xff08;五&#xff09;列表条目&#xff08;SPListItem&#xff09; SharePoint中数据的存储基本上都是通过列表条目来完成&#xff08;文档库中的文档也是一种特殊的列表条目&#xff09;&#xff0c;因此在SharePoint应用开发中&#xff0c;最终是要和列表条目打交道的…

【转】3.3SharePoint服务器端对象模型 之 访问文件和文件夹(Part 3)

&#xff08;三&#xff09;遍历 文件系统的遍历是指按照文件夹的层级结构遍历文档库、列表的文件夹和列表条目。遍历主要有三种方式&#xff1a;&#xff08;1&#xff09;直接使用文件系统对象模型进行遍历&#xff1b;&#xff08;2&#xff09;使用SPDocumentLibrary进行遍…

【LeetCode240、剑指offer04】二维数组中的查找(线性做法)

在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个高效的函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下&#x…