设为首页 收藏本站
查看: 878|回复: 0

[经验分享] SharePoint(WSS)学习(2) 开发WebPart

[复制链接]

尚未签到

发表于 2015-9-26 08:58:38 | 显示全部楼层 |阅读模式
WebPart可以看作是SharePoint的一种插件,是用来实现特定功能的组件。本篇开发一个非常简单的WebPart,了解一下其开发、部署。
1.开发
新建项目,选择SharePoint的Webpa模板,项目名称为SimpleCalculator。

可以看到解决方案管理器里自动添加了Microsoft.SharePoint的引用;添加了*.snk,*.cs,*.webpart,*.xml等几个文件,我们将它改成友好的文件名称:

实现SimpleCalculator:

using System;
using System.Runtime.InteropServices;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
namespace SimpleCalculator
{
    [Guid("05dd0d64-0c29-47ab-8a00-8f95d6ef67cc")]
    public class Calculator : System.Web.UI.WebControls.WebParts.WebPart
    {
        TextBox txt1 = new TextBox();
        DropDownList ddl1 = new DropDownList();
        TextBox txt2 = new TextBox();
        HtmlGenericControl lbl1 = new HtmlGenericControl("span");
        TextBox txt3 = new TextBox();
        Button btn1 = new Button();
        HtmlGenericControl lbl2 = new HtmlGenericControl("span");

        protected override void CreateChildControls()
        {
            txt2.Width = ddl1.Width = txt1.Width = 40;
            ddl1.Items.Add("+");
            ddl1.Items.Add("-");
            ddl1.Items.Add("*");
            ddl1.Items.Add("/");
            lbl1.InnerHtml = "=";
            btn1.Text = "Calculate";
            btn1.Click += new EventHandler(btn1_Click);
            lbl2.Style.Add("color", "red");
            this.Controls.Add(txt1);
            this.Controls.Add(ddl1);
            this.Controls.Add(txt2);
            this.Controls.Add(lbl1);
            this.Controls.Add(lbl2);
            this.Controls.Add(btn1);
        }
        void btn1_Click(object sender, EventArgs e)
        {
            try
            {
                double db1 = double.Parse(txt1.Text);
                double db2 = double.Parse(txt2.Text);
                double result = 0.0;
                switch (ddl1.SelectedValue)
                {
                    case "+":
                        result = db1 + db2;
                        break;

                    case "-":
                        result = db1 - db2;
                        break;

                    case "*":
                        result = db1 * db2;
                        break;

                    case "/":
                        result = db1 / db2;
                        break;
                }
                lbl2.InnerHtml = result.ToString("F2");
            }
            catch (Exception ex)
            {
                lbl2.InnerHtml = ex.Message;
            }
        }
    }
}
Calculator文件中自动添加了以下SharePoint命名空间(在本例中不需要使用)
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages; 一个GUID,这是这个WebPart的唯一标志。 F5一键即可实现编译、部署。
在WebPart列表页面可以看到我们刚在部署的WebPart。

退出编辑模式可以SimpleCalcuator能正确显示和运行,没有修饰的UI很不漂亮;-)

部署成功,那就看看自己的文件部署到哪去了呢?


可以看到,dll文件竟然部署到GAC里了,对于一个测试的程序来说,这不是我们想要的。
显示所有的文件,看到有个pkg文件夹,manifest.xml的DeploymentTarget设为WebApplication即可。

<?xml version="1.0" encoding="utf-8"?>
<Solution SolutionId="4658fa3d-5de4-4b46-85a8-5988cc6c977d" xmlns="http://schemas.microsoft.com/sharepoint/">
  <FeatureManifests>
    <FeatureManifest Location="Calculator\feature.xml" />
  </FeatureManifests>
  <Assemblies>
    <Assembly Location="SimpleCalculator.dll" DeploymentTarget="WebApplication" />
  </Assemblies>
</Solution>  
修改后,dll文件在站点的bin目录,但再把该webpa添加到页面会出现以下错误:
Assemblies that implement ASP.NET Web Parts and are installed into a partially trusted location, such as the bin directory, must be compiled with the AllowPartiallyTrustedCallersAttribute set for import to succeed.
在程序集添加属性
[assembly: AllowPartiallyTrustedCallersAttribute()],该方法位于System.Security命名空间中。
*.webpart文件中,Title属性为WebPart的名称,Description为WebPart的描述,上图显示的ToolTip就是描述的内容。
  飘遥的BLOG:http://www.cnblogs.com/zxjay/
作者:飘遥(周振兴)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118913-1-1.html 上篇帖子: sharepoint 2010 配置备用访问映射 下篇帖子: SharePoint 富文本框改进
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表