自定义页面使用EntityEditorWithPicker控件

PeoplePicker的控件,网上的例子比较多,可是EntityEditorWithPicker的控件的例子,太少了。这次的项目中要用它来从Userprofile中取数据,之前抠的sharepoint的js代码,但是不太完美。抽空研究了下这个控件,终于搞明白怎么使用了,贴出来共享。

1. 不用说第一步是往你的页面上拖控件,在

 

ContractedBlock.gif ExpandedBlockStart.gif Code
Microsoft.SharePoint.WebControls.EntityEditorWithPicker EntityEditorWithPicker_Skills

 

的下面,然后添加到toolbox中,拖到页面,如下

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 <wssawc:EntityEditorWithPicker  Width="450px" ID="EntityEditorWithPicker_Skills" runat="server" />

 

2.给控件赋值,以userprofile中的skills为例,用GetEntity取出数据,然后使用控件的UpdateEntities把数据加到显示的文本框上。把下面的几个属性配置好后,页面上就能出来了。

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 EntityEditorWithPicker_Skills.UpdateEntities(GetEntity(Pu["SPS-Skills"]));
                EntityEditorWithPicker_Skills.MultiSelect 
= true;
                EntityEditorWithPicker_Skills.CustomProperty 
= "SPS-Skills";
                EntityEditorWithPicker_Skills.DialogTitle 
= "Select Skills Values";
                EntityEditorWithPicker_Skills.EntitySeparator 
= Convert.ToChar(",");
                EntityEditorWithPicker_Skills.PickerDialogType 
= typeof(Microsoft.SharePoint.Portal.WebControls.ChoiceDialog);
ContractedBlock.gif ExpandedBlockStart.gif Code
public ArrayList GetEntity(UserProfileValueCollection uv)
        {
            ArrayList al 
= new ArrayList();
            
if (uv != null)
            {
                List
<object> mylist = null;
                mylist 
= (from s in uv.OfType<object>() select s).ToList<object>();
                
foreach (object obj in mylist)
                {
                    PickerEntity entity 
= new PickerEntity();
                    entity.DisplayText 
= obj.ToString();
                    entity.Key 
= obj.ToString();
                    entity.IsResolved 
= true;
                    al.Add(entity);
                }
            }
            
return al;
        }

 

2009062216581227.jpg

2009062216591037.jpg

3.基本属性的一些说明

EntityEditorWithPicker_Skills.UpdateEntities:定义好PickerEntity实体数据后,更新到控件,这个PickerEntity就是文本框中将要显示的,还可以使用

EntityEditorWithPicker_Skills.Entities.Add来添加PickerEntity

EntityEditorWithPicker_Skills.MultiSelect:是否允许多选,ture的话Dialog中下面就会有图中的Add框

EntityEditorWithPicker_Skills.CustomProperty = "SPS-Skills" ;  这个是定义数据来源的,当前使用的userprofile中的SPS-Skills.

EntityEditorWithPicker_Skills.PickerDialogType = typeof(Microsoft.SharePoint.Portal.WebControls.ChoiceDialog);  枚举的类型,根据需要选择

EntityEditorWithPicker_Skills.DialogTitle = "Select Skils Values";

这个一看就明白,定义弹出Dialog的一些属性,类似的还有EntityEditorWithPicker_Skills.CheckButtonImageName,EntityEditorWithPicker_Skills.BrowseButtonImageName 定义选择按钮和check按钮的图片url

EntityEditorWithPicker_Skills.EntitySeparator = Convert.ToChar(",");  分隔符

4.获取控件数据

 

ContractedBlock.gif ExpandedBlockStart.gif Code
object[] arrobj_skill = EntityEditorWithPicker_Skills.ResolvedEntities.ToArray(); 
                u[
"SPS-Skills"].Clear();
                
foreach (PickerEntity pe in arrobj_skill)
                {
                    u[
"SPS-Skills"].Add((object)pe.Key);
                }

 

 

转载于:https://www.cnblogs.com/geek007/archive/2009/06/22/1508395.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值