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

[经验分享] SharePoint开发学习笔记3——Visual Web Part及自定义配置界面

[复制链接]

尚未签到

发表于 2015-9-24 08:18:19 | 显示全部楼层 |阅读模式
  Visual Web Part
  我们在使用VS2010新建SharePoint项目的时候,我们可以看到一个Visual Web Part工程模板(如图)。
DSC0000.png
  
  以前在SharePoint中实现一个Web Part一般都是使用类工程,几乎所有的表现样式和控件等都是通过手写代码来实现的,要不就是借用第三方的用户控件包装器去实现,而且调试运行也相对麻烦。
  现在VS2010提供的这个模板直接使用用户控件来进行Web Part的设计,可以像做普通网页一样对它进行开发,而且调试运行的时候,VS2010也会临时的自动将它部署在你选择的站点里进行运行,调试也变得相当方便了。
  
  首先,你要创建一个Visual Web Part项目需要你在计算机管理员的权限下运行VS2010才行,当然,如果不是的话,VS2010也会对你警告的。
  
  下一步我们正式开始创建一个新的Visual Web Part工程。当你点击点击创建按钮后,VS2010会弹出一个窗口,让你选择在哪个本地站点中进行调试(如图)。
  
DSC0001.png
  
  填写一个你自己的SharePoint站点即可,然后点击完成之后,你的项目就创建成功了。VS2010也会在项目创建成功后立即转向到用户控件上。然后我们点开设计视图,就可以直接拖服务端或者Html控件上来了,此外,还可以直接在此加载JQuery这些JS库进来(如图)。
  
DSC0002.png
  
  完成的功能很简单,就是输入你的名字,点击按钮后,下排的文字就显示欢迎你的文字。
  
  我们直接点调试运行,就会自动弹出我们之前选择部署的站点,输入用户名和密码后进入,点击站点设置,选择编辑页面。(如图)
  
DSC0003.png
  
  然后在页面上再点击添加Web Part,在Custom目录下找到之前我们创建的Web Part,点击添加按钮。(如图)
  
DSC0004.png
  
  之后,我们做好的Web Part就出现在SharePoint的站点界面中了。(如图)
  
DSC0005.png
  
  自定义Web Part配置界面
  SharePoint对于WebPart中的字符串、整数、浮点数等数据类型的属性,会自动在配置界面显示出一个文本框,对于枚举类型,SharePoint也会自动显示为一个下拉列表,对于布尔型,SharePoint也会自动显示复选框。
  
  那可能还有其它的一些更复杂的类型怎么办哩?SharePoint也支持自定义WebPart的配置界面。此时就要用到EditorPart类了。
  
  接着上面的工程,我们需要在工程里新建一个类,随便命一个名字:WebPartEditor,引入命名空间:System.Web.UI.WebControls.WebParts,并让这个类继承EditorPart类,并实现它的两个方法ApplyChanges和SyncChanges,简单描述:


  • ApplyChanges:是由配置界面向WebPart传值;
  • SyncChanges:是由WebPart向配置界面传值。
  类WebPartEditor代码如下:
  
  



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls;
namespace VisualWebPartProject2
{
class WebPartEditor:EditorPart
{
DropDownList ddl_Text;
protected override void OnInit(EventArgs e)
{
//保证控件被创建
EnsureChildControls();
base.OnInit(e);
}
//创建控件
protected override void CreateChildControls()
{
Controls.Clear();
ddl_Text = new DropDownList();
ddl_Text.Items.Add("配置一");
ddl_Text.Items.Add("配置二");
Controls.Add(ddl_Text);
}
//绘制自定义配置界面的外观
protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
{
writer.Write("配置选项:");
ddl_Text.RenderControl(writer);
}
public override bool ApplyChanges()
{
return true;
//throw new NotImplementedException();
}
public override void SyncChanges()
{
//throw new NotImplementedException();
}
}
}

  
  在WebPart类中,我们还需要实现IWebEditable接口的一个方法,注意,这个接口已经在WebPart类中引用了,我们这里只需要重写它CreateEditorParts方法,代码如下:
  



using System;
using System.ComponentModel;
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;
using System.Collections;
namespace VisualWebPartProject2.VisualWebPart1
{
[ToolboxItemAttribute(false)]
public class VisualWebPart1 : WebPart
{
// Visual Studio might automatically update this path when you change the Visual Web Part project item.
private const string _ascxPath = @"~/_CONTROLTEMPLATES/VisualWebPartProject2/VisualWebPart1/VisualWebPart1UserControl.ascx";
protected override void CreateChildControls()
{
Control control = Page.LoadControl(_ascxPath);
Controls.Add(control);
}
//自定义配置界面需重写此方法
public override EditorPartCollection CreateEditorParts()
{
ArrayList controlList = new ArrayList();
WebPartEditor ePart = new WebPartEditor();
//分配ID,要不然会报错
ePart.ID = this.ID + Guid.NewGuid().ToString();
controlList.Add(ePart);
return new EditorPartCollection(controlList);
}
}
}

  
  这样,我们自定义的配置界面就做好了,效果如下图所示
DSC0006.png

运维网声明 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-117904-1-1.html 上篇帖子: Moss/Sharepoint 看RBS如何解决二进制文件的存储(BLOB) 下篇帖子: 《博客园精华集》Sharepoint+MOSS分册第2轮筛选结果文章列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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