视图
SharePoint 日历视图兼容性问题
在IE11上访问SharePoint 2013 calendar视图,发现加入兼容性视图以后访问,正常,如下图: 不加入兼容性视图IE11访问,出现兼容性问题,如下图: 因为有些环境有问题,有些环境没有问题,对比了一下,发现打补丁kb3054792,打完补丁,重启即可; 补丁地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=47055 特别的,在解决这个问题之前的疯狂谷歌过程中,发现也有类似情况,要么加入兼容性视图,要么开启浏览器Enterprise Mode(这个我试了,感觉很麻烦),如下图: 确实能解决这个问题,也想附后链接描述的情况,前后有一段灰色日期,如下图:
SharePoint Online 如何创建和使用视图
首先,解释一下什么是SharePoint站点视图,所谓视图,就是列表的一个呈现形式,包含特定的栏、排序、筛选、分组等特性,我们通常创建视图用来展示特定范围和显示方式的数据。 通过登录地址登录到Office 365的SharePoint Online站点中,我们可以在右上角的设置菜单中,选择添加应用程序; 选择自定义列表,我们使用列表来演示如何使用视图,当然,视图不仅仅可以应用在列表中,还可以应用在文档库、图片库等库中; 列表的名称叫做测试视图,点击创建即可创建列表; 创建完毕列表,我们需要创建几个栏,用来测试视图; 点击Ribbon菜单上黄色背景的创建栏,即可创建栏;
SharePoint Online 如何切换经典视图
SharePoint online 默认是现代视图,我们可以通过Powershell命令切换默认视图。 以下,是完成的Powershell命令: 复制代码 # This file uses CSOM. Replace the paths below with the path to CSOM on this computer. # If CSOM is in the user's downloads folder, you only have to replace the <username> placeholder.Add-Type -Path "C:\Users\<username>\downloads\Microsoft.SharePointOnline.CSOM.16.1.5026.1200\lib\net45\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Users\<username>\downloads\Microsoft.SharePointOnline.CSOM.16.1.5026.1200\lib\net45\Microsoft.SharePoint.Client.Runtime.dll"# All strings in braces < >are placeholders that you must replace with the appropriate strings.$webUrl = 'https://<domain>.sharepoint.com/<relative-path-to-website>' $username = '<username>@<domain>.onmicrosoft.com' $password = Read-Host -Prompt "Password for $username" -AsSecureString[Microsoft.SharePoint.Client.ClientContext]$clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl) $clientContext.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password) $site = $clientContext.Site; $customActions = $site.UserCustomActions $clientContext.Load($customActions) $clientContext.ExecuteQuery()$first = $true foreach($customAction in $customActions) { if($customAction.Location -eq "scriptlink" -and -Not ([string]::IsNullOrEmpty($customAction.ScriptBlock))) { if ($first) { Echo " " Echo ($webUrl + " has the following inline JavaScript custom actions") $first = $false } Echo $customAction.Title } }复制代码 如果保存ps1文件,请注意
SharePoint 列表视图修改多行文本字段显示长度
最近有这么个需求,用户希望在所有项目视图显示多行文本字段,然后,又不希望显示的过场,也就是处理一下长度。 一开始就想到用js的方式去处理,偶然间发现还可以用jslink,尝试了一下,非常好用,分享给大家。 完整代码// List View - Substring Long String Sample // Muawiyah Shannak , @MuShannak (function () { // Create object that have the context information about the field that we want to change it's output render var bodyFiledContext = {}; bodyFiledContext.Templates = {}; bodyFiledContext.Templates.Fields = { // Apply the new rendering for Body field on list view "Body": { "View": bodyFiledTemplate } }; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(bodyFiledContext); })(); // This function provides the rendering logic function bodyFiledTemplate(ctx) { var bodyValue = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; //This regex expression use to delete html tags from the Body field var regex = /(<([^>]+)>)/ig; bodyValue = bodyValue.replace(regex, ""); var newBodyValue = bodyValue; if (bodyValue && bodyValue.length >= 100) { newBodyValue = bodyValue.substring(0, 100) + " ..."; } return "<span title='" + bodyValue + "'>" + newBodyValue + "</span>"; } 后来,用户又希望鼠标点击缩略文档的时候,能显示所有内容,天啊,满足客户需求,毕竟,客户就是上帝!!! 简单的改了一下默认脚本的return的值,如下:return "<div onclick='changeShow(this)'><span style='display:none;'>" + bodyValue + "</span><span style='display:block;'>" + newBodyValue + "</span></div>"; 然后,再加一个切换效果的脚本,如下:function changeShow(obj) { var spans = $(obj).find("span"); if(spans[0].style.display == "none") { spans[0].style.display = "block"; spans[1].style.display = "none"; } else { spans[0].style.display = "none"; spans[1].style.display = "block"; } } 这样,就满足用户单击可以切换缩略文本和完整文本的功了。 运行效果
SharePoint Set-SPUser 命令拒绝访问 问题解决
最近碰到一个问题,由于User Profile Service服务有问题,用户信息无法更新。所以,想到Set-SPUser命令可以更新,于是乎找到这个命令,但是更新的时候发现拒绝访问的错误。找了很久原因,发现需要设置一下权限,不知道是否还会有人遇到类似的问题,记录一下分享给大家。 参考链接可能需要梯子,如果无法访问的同学了解一下。· Solution: Add a web application user policy with Full control for the Farm Administrator who runs the Script!
How to Limit NodeRunner.exe High Memory, CPU Usage
roblem: NodeRunner.exe is consuming a lot of memory and CPU resulted in performance issues on SharePoint 2013 server.Solution: NodeRunner.exe is a SharePoint 2013 Search service component and it is resource hungry. To reduce the CPU and Memory impact of this process, follow below steps:Step 1: Reduce the CPU impact of the search service By default SharePoint search uses "maximum" to speed up its search crawling process. To reduce the CPU usage of the search service, run this PowerShell script from any one of your SharePoint 2013 server:Set-SPEnterpriseSearchService -PerformanceLevel Reduced This sets Search Service Application crawl component to use less number of threads.Step 2: Limit the NodeRunner.exe's Memory usage: Step 3: Restart Search Service For the above steps to take effect, You have to restart SharePoint 2013 search service. Go to Services console, restart SharePoint Search Host Controller process. Or use the PowerShell cmdlet to restart Search host controller process:Restart-Service SPSearchHostController The downside of the above changes: Since you are restricting resources to SharePoint search service, it increases search crawl time! PowerShell to Set NodeRunner config:
SharePoint workflows stop working (Failed on started.)
最近,使用工作流的时候碰到了一个问题,突然间所有工作流都无法启动,报错Failed on started. 同时,工作流内部报错,工作流被系统账号取消了。 查了很久,发现系统打了windows server security patches造成的,有两种方法可以解决。 原因 问题的原因就是我们工作流的很多依赖项,在安装了这个安全补丁以后,需要在web.config中进行授权信任。 方法一 很简单,卸载打的补丁。KB4457916/4457035 方法二 修改每一个前端服务器中,每个web application下的配置文件。 配置文件路径一般在:C:\inetpub\wwwroot\wss\VirtualDirectories\Port SharePoint 默认工作流需要添加:
Fix "Drives are running out of free space" Error in SharePoint Health Analyzer
最近帮助用户做健康检查,用户发现事件查看器(EventView)里面有很多错误,有一个就是"Drives are running out of free space",而且每小时就会出现一次。 其实,这些系统的警告,是可以在管理中心禁用的。 1.进入SharePoint管理中心,点击Monitoring - Review rule definitions; 2.找到我们这个错误,选中,在Ribbon菜单上点击编辑; 3.编辑的时候,把Enabled去掉,保存就可以了。 结束语 经过这样的修改,SharePoint的Timer Job就不会再检查这个错误,并且将错误写到事件查看器了。
SharePoint JavaScript 更新用户和组字段
最近,需要更新列表字段,字段的类型是用户和组,so写了这么一段代码 复制代码 function updateUserField(){ var ctx = new SP.ClientContext.get_current(); var list = ctx.get_web().get_lists().getByTitle('My List'); var item = list.getItemById(1);//Item Idvar assignedToVal = new SP.FieldUserValue(); assignedToVal.set_lookupId(12);//User Id in the site collection item.set_item("AssignedTo",assignedToVal);//AssignedTo is a column name item.update(); ctx.executeQueryAsync( function() { console.log('Updated'); }, function(sender,args) { console.log('An error occurred:' + args.get_message()); } ); } ExecuteOrDelayUntilScriptLoaded(updateUserField, "sp.js");
SharePoint 读取内容的插件之SharepointPlus
最近,一直在前端和SharePoint进行交互,然后,发现一个好用的插件,分享给大家。 首先,需要添加一个引用,如下图: 当然,我这里只是举个例子,亲们一定要去下载这个库,然后传到服务器或者文档库中进行引用,而不是添加下面一行代码就行的【新手必读,老手忽略之】;<script type="text/javascript" src="sharepointplus-5.1.min.js"></script> 然后,添加JQuery库,因为很多时候和DOM进行交互,会比原生的JavaScript方便很多。 最后,就可以使用SharePoint Plus插件了。 举个简单的例子,如何获取数据: 复制代码 // with some fields and an orderby command $SP().list("ListName","http://www.mysharepoint.com/mydir/").get({ fields:"Title,Organization", orderby:"Title DESC,Test_x0020_Date ASC" }).then(function(data) { for (var i=0; i<data.length; i++) console.log(data[i].getAttribute("Title")); });复制代码 插件还有很多其他的功能,大家可以参考下面的链接,里面有例子;