zoukankan      html  css  js  c++  java
  • tagMapping 在SharePoint中的应用

    tagMapping SharePoint中的应用

     

    SharePoint的自定制开发中, 或多或少的会涉及到更改默认的一些控件或者对现有控件进行功能上的扩展和限制, 以往的做法基本是重新开发控件来替代原有的控件, 这里我们来介绍另外一种实现方式.

    首先我们来了解tagMapping.

    微软的定义:

    定义一个标记类型的集合,这些标记类型在编译时重新映射为其他标记类型。

    此元素是 .NET Framework 2.0 版中的新元素。

    <tagMapping> 

       <add /> 

       <remove /> 

       <clear/>

    </tagMapping>

     

    从上面简单的介绍我们可以知道, tagMapping 元素定义一个标记类型的集合,这些标记类型在编译时重新映射为其他标记类型。 此重新映射会导致在配置文件范围内使用映射的类型替代 ASP.NET 应用程序中所有页和控件的原始标记类.

    所以如果我们对原有的控件进行更改,然后在web.config, 配置我们自定义的类型,这样就可以对默认的控件进行扩展了.

    下面通过实例来看看具体的实现方式.

    本实例我们对SharePoint People Picker进行扩展, 添加我们的验证方法, 我们禁止用户对用户名包含Eric的关键字进行搜索.

    创建一个空的SharePoint 项目, 创建一个新的class 并继承与.

    我们的验证逻辑需要放在ValidateEntity, 所以我们要重写ValidateEntity这个方法, 在这个方法内,你可以放置你需要的任何的逻辑. 简单代码如下.

    public override Microsoft.SharePoint.WebControls.PickerEntity ValidateEntity(Microsoft.SharePoint.WebControls.PickerEntity entity)

          {

              Microsoft.SharePoint.WebControls.PickerEntity vEntity = entity;

     

              if (vEntity.DisplayText.Contains("Eric"))

              {

                  vEntity.IsResolved = false;

              }

     

              return base.ValidateEntity(entity);

          }

     

    当然你也可以重载其他方法,比如CreateChildControls, 添加自己的控件.等等.

     

    编译, 打包,部署后剩下最后一步,添加tagmapping.

     

    打开SharePoint 应用程序目录下的web.config (哪个web application需要这个验证逻辑,就需要把tagMapping添加到相应的web.config, 你也可以通过Feature自动添加tagMapping).

     

      <tagMapping>

            <add tagType="System.Web.UI.WebControls.SqlDataSource, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mappedTagType="Microsoft.SharePoint.WebControls.SPSqlDataSource, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

            <add tagType="Microsoft.SharePoint.WebControls.PeopleEditor,Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" mappedTagType="SP2010.WebControls.PeopleEditor, MWLINK.WebControls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c7d5eba68c789280" />

          </tagMapping>

     

    打开SharePoint站点,尝试用People Picker控件搜索Eric相关用户,就会报出找不到用户的错误.

  • 相关阅读:
    [搬运工系列]-JMeter(十三)压力测试--数据库(mysql)压力测试
    [搬运工系列]-JMeter(十二)处理Cookie与Session
    [搬运工系列]-JMeter(十一)问题与方案--内存溢出解决方法
    [搬运工系列]-JMeter(十) 命令行(非GUI)模式
    [搬运工系列]-JMeter (九)分布式测试
    [搬运工系列]-JMeter(八)HTTP属性管理器HTTP Cookie Manager、HTTP Request Defaults
    Python-Selenium 之控制浏览器的操作,WebDriver常用方法
    Selenium常见的无法定位到元素的原因
    接口测试实战
    jmeter做websocket协议的接口测试
  • 原文地址:https://www.cnblogs.com/splover/p/2149332.html
Copyright © 2011-2022 走看看