zoukankan      html  css  js  c++  java
  • SharePoint 2010 PowerShell 系列 之 应用总结 (二)

        好久没更新文章了,趁闲的时间再总结一下PowerShell。

        有的人善于用API创建列表,我觉得用XML结构表示列表更容易理解,所以下面的介绍都是以Xml解构来显示的。

        创建列表时,有两个重要的字段DisplayName 和 StaticName,一个是显示名,一个是内部名,在开发时发现如果把DisplayName写成中文,StaticName写成英文,创建列表成功后,StaticName被编码,很显示不是我们想要的答案,也不知是否为微软的Bug。

    创建列表字段

    View Code
    #Add Fields
    Function AddField($list,$xml,$bool,$fieldOptions){
        $list.Fields.AddFieldAsXml($xml,$bool,$fieldOptions)
    }
    
    #代码维护 字段
    Function AddListField_Code($web,$list,$listName){
        #名称
        $CodeNameXml="<Field Type='Text'  DisplayName='CodeName' Required = 'TRUE' MaxLength='255' FromBaseType='TRUE'/>"
        AddField $list $CodeNameXml $true $DefaultViewFieldOptions
        #上级
        $ParentIdXml="<Field Type='Lookup' DisplayName='ParentId' Required = 'FALSE' List='{"+$list.ID+"}' ShowField='CodeName' />"
        #扩展字段
        AddField $list $ParentIdXml $TRUE $DefaultViewFieldOptions
        $fieldParentId = $list.Fields["ParentId"]
        $ParentIdCodeNameXml="<Field Type='Lookup' DisplayName='ParentId:CodeName' Required = 'FALSE'  List='{"+$list.ID+"}' ShowField='CodeName' FieldRef='{"+$fieldParentId.ID+"}' />"
        AddField $list $ParentIdCodeNameXml $TRUE $DefaultViewFieldOptions
        
        $list.Update()
    }
    
    
    #代码维护
    Function AddList_Code($web){
        $listName = "代码维护"
        $listDescription = "代码维护"
        DeleteList $web $listName  
        AddList $web $listName $listDescription $GenericListTemp
        $list = $web.Lists.TryGetList($listName)
        OnQuickLaunchList $list True
        AddListField_Code $web $list $listName
        UpdateDisplayName_Code $list
    }

    一般情况下,我们是要显示中文名称的,有没有办法修改呢,答案是肯定可以修改的,下面是修改的方法

    View Code
    #Update DisplayName
    Function UpdateDisplayName($list,$oldName,$newName){
      $list.Fields[$oldName].Title = $newName
      $list.Fields[$oldName].Update()
    }
    
    #代码维护 修改显示名
    Function UpdateDisplayName_Code($list){
       UpdateDisplayName $list "标题" "代码"
       UpdateDisplayName $list "CodeName" "名称"
       UpdateDisplayName $list "ParentId" "上级"
    }

    用PowerShell开发时费时,但是到部署时就知道他的强大,大家慢慢体会就行了。

    为了验证上面关于Bug的问题,特意在Sharepoint 2013架构上做了测试,结果还是被编码成<FieldRef Name='_x540d__x79f0_' />不知为什么这样,难道这是别有用意还是本来就是这样呢?

  • 相关阅读:
    ViewPager留出边 显示左右两边的视图
    Retrofit 2.0 上传文件
    android一个app打开另一个app的指定页面
    Java多线程消费者、生产者的基本思路
    Android 8.0+ 更新安装apk失败的问题
    Android 8.0+ 通知不显示的适配
    android 7.0+ FileProvider 访问隐私文件 相册、相机、安装应用的适配
    android 6.0+ 动态权限 拒绝不再询问后跳转设置应用详情页面
    ViewPager中Fragment的重复创建、复用问题
    Android源码学习(2) Handler之Looper
  • 原文地址:https://www.cnblogs.com/Fengger/p/2977822.html
Copyright © 2011-2022 走看看