【转】使用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…

【转】[SharePoint 开发详解] 一个Feature中使用SPGridView的几个Tips

根据上面一篇随笔所介绍的PC购买流程的项目&#xff0c;在项目中&#xff0c;需要有一个生成订单的功能&#xff0c;能够使得Admin很方便的在获得批准的申请中选取一些来生成订单&#xff0c;要求界面操作简单明了&#xff0c;大概的效果图如下&#xff1a; 点击checkbox&#…

【LeetCode - 131】分割回文串(dp,dfs)

题目链接&#xff1a;https://leetcode-cn.com/problems/palindrome-partitioning/ 题目&#xff1a; 给定一个字符串 s&#xff0c;将 s 分割成一些子串&#xff0c;使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab" 输出: [ ["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;每次可以往上下左…

【转】0.SharePoint服务器端对象模型 之 序言

对于刚刚开始接触SharePoint的开发人员&#xff0c;即使之前有较为丰富的ASP.NET开发经验&#xff0c;在面对SharePoint时候可能也很难找到入手的方向。对于任何一种开发平台而言&#xff0c;学习开发的过程大致会包括&#xff1a;开发工具的使用、开发手段的选择和开发语言的编…

【LeetCode - 122】买卖股票的最佳时机 II(贪心 或 dp)

题目链接&#xff1a;https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票…

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

在一个传统的ASP.NET开发过程中&#xff0c;我们往往会把开发分为界面展现层、逻辑业务层和数据访问层这三个层面。作为一个应用开发平台&#xff0c;SharePoint是微软在直观的开发能力和自由的扩展能力之间&#xff0c;取到的一个平衡点&#xff0c;其对象模型的设计理念也反映…

【LeetCode - 123】买卖股票的最佳时机 III

题目链接&#xff1a; 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再次购买前出售掉之前的股票&#xf…

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

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

【LeetCode - 224】基本计算器(栈)

实现一个基本的计算器来计算一个简单的字符串表达式 s 的值。 题目链接&#xff1a;https://leetcode-cn.com/problems/basic-calculator/ 示例 1&#xff1a; 输入&#xff1a;s "1 1" 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;s " 2-1 …

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

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

【LeetCode - 1047】删除字符串中的所有相邻重复项(栈)

https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/ 给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所有重复…

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

&#xff08;二&#xff09;列表&#xff08;SPList&#xff09; 列表是SharePoint中最为重要的数据容器&#xff0c;我们一般保存在SharePoint中的所有数据&#xff0c;都是保存在列表中&#xff08;文档库也是一种列表&#xff09;&#xff0c;因此列表对象在SharePoint的开…

【LeetCode - 227】基本计算器 II(栈)

https://leetcode-cn.com/problems/basic-calculator-ii/ 给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 示例 1&#xff1a; 输入&#xff1a;s "32*2" 输出&#xff1a;7 示例 2&#xff1a; 输入…

Team Foundation Server的回滚操作

VSTF Rollback 操作 最近遇到要把有些项目需要做回滚操作&#xff0c;发现TFS的UI上没有回滚的操作。 经过百度&#xff0c;查到一个CSDN上的博主发了一种方法&#xff0c;经过验证&#xff0c;那种方法是错误的&#xff1a; 他通过先获取指定变更集-》签出-》签回去&#xff…

【LeetCode - 141142】环形链表(i和ii)(快慢指针,链表)

https://leetcode-cn.com/problems/linked-list-cycle/ 给定一个链表&#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾…

sharepoint的文件是怎样存放的及存放的表是哪个

主要有两个表&#xff0c;一个是AllDocs&#xff0c;另一个是AllDocStreams&#xff0c;在AllDocstreams有一个content字段&#xff0c;这个字段是用来保存文件内容的&#xff0c;这个字段最大只能放2G&#xff0c;这也就是SharePoint上传文件最大不能超过2G的原因。 表 AllDoc…

【LeetCode - 556】下一个更大元素 III(贪心,思维)

https://leetcode-cn.com/problems/next-greater-element-iii/ 给你一个正整数 n &#xff0c;请你找出符合条件的最小整数&#xff0c;其由重新排列 n 中存在的每位数字组成&#xff0c;并且其值大于 n 。如果不存在这样的正整数&#xff0c;则返回 -1 。 注意 &#xff0c;…

SharePoint Pages(1)之SharePoint页面体系架构

[开篇]最近一段时间在研究SharePoint技术&#xff0c;在内网建设了一个门户的原型&#xff0c;做一些尝试。由于一些需求要新建一些功能页。开始使用SharePoint制作页面&#xff0c;搞了半天才明白原来内容页不支持内联代码&#xff0c;在Visual Studio里面捣鼓了半夜&#xff…