zoukankan      html  css  js  c++  java
  • 发一个取AD用户属性的自定义字段

    在列表中有时候需要取某个用户的属性,比如用户的displayNamedepartmentmobilehomeDirectory等等,这些东西使用“用户或用户组”字段是无法达到这样的效果的,所以做了这样一个简单的自定义字段,添加/修改List项的时候,填写用户登录名和要显示的属性,显示的时候根据登录名到AD中查询该用户的相关的属性的值来显示,这个东东还没有正式用,处于测试阶段,可以在此基础上扩展,代码在下面,仅供参考哦。
    自定义字段开发网上有挺多的教程可以看,推荐请参考Erucy's blog中的文章。下面只补充一点点,凑个字数^_^

    fldtypes_Custom.xml中定义显示的方式在<RenderPattern Name="DisplayPattern"/>定义,对于多字段(继承自SPFieldMultiColumn),拿这个字段项目的定义XML来说,是这样的:
     1 <RenderPattern Name="DisplayPattern">
     2             <Switch>
     3                 <Expr>
     4                     <Column/>
     5                 </Expr>
     6                 <Case Value="">
     7                 </Case>
     8                 <Default>
     9                     <Column SubColumnNumber="0" HTMLEncode="TRUE"/>
    10                     <HTML><![CDATA[ 's ]]></HTML>
    11                     <Column SubColumnNumber="1" HTMLEncode="TRUE"/>
    12                     <HTML><![CDATA[ is ]]></HTML>
    13                     <Column SubColumnNumber="2" HTMLEncode="TRUE"/>
    14                 </Default>
    15             </Switch>
    16         </RenderPattern>

    他显示的样子是这样的:  皮皮's 部门 is 开发部。SubColumnNumber的属性值与SPFieldMultiColumnValue中的属性相对应(在此项目中对应的是ADUserFieldValue类)。
    然后是自定义属性简单的做法,比如这里需要连接AD,那需要的自定义的属性也是在fldtypes_Custom.xml中定义的,此项目中是:
    <PropertySchema>
                
    <Fields>
                    
    <Field Name="DomainPath" DisplayName="Domain:" Type="Text" Required="TRUE" />
                    
    <Field Name="DomainUserName" DisplayName="UserName:" Type="Text" Required="TRUE" />
                    
    <Field Name="DomainPassword" DisplayName="Password:" Type="Text" Required="TRUE" />
                
    </Fields>
    </PropertySchema>
    在代码里,使用base.Field.GetCustomProperty("DomainPath")来获取,很简单,在这里也许会有一个bug,参考【解决Custom Field Type修改时属性显示不正确的问题】 ,通过打补丁即可解决,现在差不多都打了SP1了吧,所以这个bug应该是不会有的了。

    代码在这里下载

  • 相关阅读:
    hadoop-2.7.3安装kafka_2.11-2.1.0
    HBase数据快速导入之ImportTsv&Bulkload
    hbase shell 基本操作
    SQLplus命令中删除键和翻页键不能用的问题
    SQL*Loader 的使用sqlldr和sqluldr2方法详解
    python连接oracle导出数据文件
    python零碎知识点一
    用Python输出一个Fibonacci数列
    问题总结——window平台下gruntower安装后无法运行的问题
    JavaScript学习笔记——浅拷贝、深拷贝
  • 原文地址:https://www.cnblogs.com/ycc/p/1036793.html
Copyright © 2011-2022 走看看