随笔分类 - 05.SharePoint 2010
摘要:在sharepoint 2010中,如果当前页面的篇幅比较长,如何在拉动页面滚动条时,在刷新的条件下,保持滚动条位置,研究了一下,发现sharepoint 2010的母板页,和普通的asp.net页面有不太一样的地方,是通过一个属性document.getElementById("s4-workspace").scrollTop来控制的,以下是实现的脚本,只需要修改一下v4.master母版页,在里面添加一个javascript的方法。 <style> html {overflow: auto;} /*better than on the body */ bod
阅读全文
摘要:性能差不推荐使用的API性能更好的推荐使用的APISPList.Items.CountSPList.ItemCountSPList.Items.XmlDataSchema创建SPQuery,仅仅返回需要的数据SPList.Items.NumberOfFields创建SPQuery,指定ViewFields,仅仅返回需要的数据SPList.Items[System.Guid]SPList.GetItemByUniqueId(System.Guid)SPList.Items[System.Int32]SPList.GetItemById(System.Int32)SPList.Items.GetI
阅读全文
摘要:sharepoint的导航开发2、来大体讲一下“导航”(1)全局导航 : 整个网站集的导航;(如果公司的网站有很多子网站,这时便会用到全局导航啦);贴一下主要代码:using Microsoft.SharePoint.Publishing.Navigation;PortalSiteMapProvider psm = new PortalSiteMapProvider();psm.NavigationType = PortalNavigationType.Global;foreach (SiteMapNode node in psm.RootNode.ChildNodes){ //这里面...
阅读全文
摘要:假设我有10个列表,添加一个列表事件接收器ItemAdded事件到这10个列表上,前提条件是这个事件为所有的这10个列表提供相同的功能。如果为每个列表添加相同的事件接收器是件很头疼的事情,如果列表不止10个,那就要Copy N次相同的代码。下面提供一种方法,对于多个列表,如果要求相同功能的事件接收器,那么您只需要写一个事件接收器的代码就可添加到多个列表。1. 在您的解决方案中,添加一个feature,在方法FeatureActivated() ,为多个列表注册事件接收器,代码如下:public override void FeatureActivated(SPFeatureReceiverPr
阅读全文
摘要:这个问题发生在从 SharePoint 2007 升级到 SharePoint 2010之后。一些本来可用的 WebPart 消失掉了,变为不可用。 例如 Social Collaboration Web Parts: 解决办法也很简单,重新激活 PortalLayouts 这个Feature 即可。 1. stsadm命令行方式 stsadm -o deactivateFeature -name “PortalLayouts” -url “http://portal.wherever.com/sites/collectionname” stsadm -o activateFeature ..
阅读全文
摘要:场景描述: Site工作人员UserA创建了一个Task,并且Assign给UserB。UserB接到来自Task List的邮件通知。这时UserA发现Assign的人错了,重新修改Task Item,将任务重新Assign给另外一个用户UserC,并且同时收回了UserB的访问权限。UserB报告,每天打开OUTLOOK后,就会遇到很到此弹出Windows验证登录框,要求登录,并且输入多次后仍然弹出。解决: 让用户Check他在OUTLOOK中的Task,在从SharePoint的Task List中Assign给他任务时,他收到邮件的同时也会在他的OUTLOOK的Task中将Task同.
阅读全文
摘要:默认情况下我们在SharePoint 2010文档库中上载一个PDF类型的文件,由于受到版权问题,文档库是不识别上载的PDF类型文件的。而在搜索中心或搜索框中输入与PDF类型文件相关的关键词时,SharePoint 2010也是搜索不出来的,因为默认情况下搜索服务应用程序的文件类型中是没有.pdf文件类型的。虽然默认情况下不支持PDF文件类型的搜索,但是可以通过扩充的方法让SharePoint 2010可以搜索PDF类型的文件。当我们在文档库中上载一个文件时,如果是受支持的文件类型,则会把相应的文件类型图标显示出来,反之则显示一个不被支持的文件类型的图标。如图1所示:图1在图1中除了选中的文档
阅读全文
摘要:上一篇我们总结了开启Developer Dashboard的方法,有了Developer Dashboard,我们可以获取到许多信息,这些信息对我们Sharepoint管理人员和开发人员很有帮助,如: •哪些控件被加载 •加载每个控件的时间 •数据库查询以及执行时间 •加载页面所触发的事件 •加载页面各个阶段的时间 一、何时使用 SPMonitoredScope 开发人员可以在以下情形中使用 SPMonitoredScope :•确定资源过度使用情况。 •确定性能瓶颈。 •确定某些组件与其他组件的交互方式。二、SPMonitoredScop使用的局限性 应注意,在使用 SPMonit...
阅读全文
摘要:如果你开发了一个Webpart并把它呈现到Sharepoint网站上时,Sharepoint会创建一个top-level的scope,在这个Scope中,Sharepoint加入了一个名叫SPCriticalTraceCounter的Monitor,这个Monitor可以被用来向Developer Dashborad的Assert and Critical Events段插入信息。如下图:如果你点击信息条左边的链接,你就可以得到更多关于这个记录事件的信息内容(当前事件的调用堆栈)。如下图:如何向Developer Dashboard的这个Assert and Critical Events信息
阅读全文
摘要:在以前的Sharepoint版本中由于没有出现Developer Dashboard,使用ASP.NET Tracing的相关信息就成了Sharepoint开发人员进行调试和诊断的重要手段之一。现在虽然有了Developer Dashboard,我们仍然可以把Asp.net的Tracing信息整合到Developer Dashboard中。 ASP.NET Tracing包含了诸如下面的一些信息: • 事件的跟踪和执行时间信息 • 控件树及其相关信息 • Session与Cookies的相关信息 • 页面的header,form以及传参等信息...... Asp.net Tr...
阅读全文
摘要:Correlation ID就是每次请求SharePoint的Web服务器时自动生成的GUID,在我们的Sharepoin网站发生错误的时候,我们可以通过它在日志中查找到该错误的详细信息。它就是“犯罪份子”在现场留下的“指纹”。因此,它对我们跟踪调试Sharepoint具有非常重要的作用。一、如何获取到Correlation ID。 一般而言,我们可以从Sharepoint网站的错误页面上看到报错信息中包含的CorrelationID,如下图 。 当然,我们也可以编写代码来主动获取CorrelationID,并提取附加信息发布或保存到我们指定的地方,参见Sharepoint学习笔记—Deb..
阅读全文
摘要:在Sharepoint2010中,每个Request都有自己的Correlation ID,我们在跟踪或调试时会结合ULS来查找特定的信息(如:Error信息等),Correlation ID的使用请参见此文(Sharepoint学习笔记—Debug--Correlation ID的使用),这里我们要通过代码来获取当前Request的Correlation ID。 先在我们的项目中新建一个类:MYSPCorrelationId .cs,此类有一个方法GetCurrentCorrelationToken(),MYSPCorrelationId .cs 代码如下:usingSystem;usin.
阅读全文
摘要:Developer Dashboard是从Sharepoint2010开始新提供的一项亲特性,它是一个位于页面下方的信息面板,它能直接显示出当前页面上的各个组件的运行时间、当前页面的运行会产生哪些数据库调用、每个数据库调用等等信息,对于Sharepoint网站的开发,维护和调试很有帮助。 Developer Dashboard在默认情况下是关闭的,你需要自己去开启这项功能,但是在Sharepoint的用户界面中没有开箱即用的功能让你来开启它,通常有三种方式来启用它,而且一旦启用,它就在整个Farm中都有效。 1、使用STSADM命令 此命令就是给developer-dashboard属性设置.
阅读全文
摘要:SharePoint是微软历史上销售量增长最快的产品,其可以存储大量的文件。这意味着应用性能是成功部署SharePoint的一个关键因素。我们在这里列出了能够提高SharePoint服务器性能的十个步骤。 步骤1:分离用户和数据库信息 一个常见的误区是与高速网络连接的服务器有着充足的带宽执行所有需要的操作。但是SharePoint在SQL设置了大量的请求———每个需求一个页面的请求会导致向数据库发送大量的请求,更不要说服务、检索和其它操作了。 为了缓解用户与数据库信息间的冲突,前端服务器和SQL连接应当被分离,让它们分别通过独立的物理网络或虚拟LAN。这需要在每一个前端Web服务器上至...
阅读全文
摘要:使用SharePoint对象模型:SPFieldCollection collFields = list.Fields;//Update the calculated columnif (collFields.ContainsField("Document ID")){ collFields["Document ID"].Update();}使用Powershell:[System.Reflection.Assembly]::LoadWithPartialName(”Microsoft.SharePoint”)#This will get the sit
阅读全文
摘要:删除群组:错误的做法:foreach (SPGroup group in web.SiteGroups){ if (group.Name.ToLower() == grpName.ToLower()) { web.SiteGroups.Remove(grpName); }} 原因:当我们增加或删除集合中的条目(Item)时候,Enumerator枚举不知道数据集合中有多少个条目(Item)。正确的做法:for (int index = 0; index <= web.SiteGroups.Count...
阅读全文
摘要:问题描述:using System;using System.Collections.Generic;using System.Text;using Microsoft.SharePoint; namespace NCR{ class NCRListEventHandler: SPItemEventReceiver { /// <summary> /// Update NCRPrint calculated column so ID column is not blank. Without this new items have ID empty in ...
阅读全文
摘要:使用强大的开源日志库Log4net来处理应用程序的日志信息,记录错误,警告,信息。1 下载Log4net,在项目中引用log4net.dll2 在AssemblyInfo.cs中添加以下代码[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 3 添加cs文件public static class Log4netUtil { private static ILog GetLog() { ILog log = null;...
阅读全文
摘要:01. 添加List View WebpartSPList oList = web.Lists[Constant._CUSTOMER_CONTRACT_LIST_TITLE]; ListViewWebPart oListViewWebPart = new ListViewWebPart(); oListViewWebPart.ZoneID = "Left"; oListViewWebPart.ListName = oList.ID.ToString("B").ToUpper(); oListViewWebPart.ViewGuid = oList.Vie
阅读全文
摘要:问题描述:平时我们在设计InfoPath表单的时候,表单和代码是分离的。如果一旦表单和代码的关系断裂了,会出现以下错误: Infopath 2007: InfoPath cannot start Microsoft Visual Studio Tools for Applications 如何重新绑定呢?解决办法:1 在表单属性中移除代码,即解除表单和代码的绑定位置关系。2 保存并关闭表单,然后重新打开。3 在表中中托管代码位置指定托管代码解决方案的路径,注意不要包括*.csproj文件。4 然后点击编程,会自动创新创建项目,但是位置不是我们预期的,即跟原来的项目文件(*.csproj)位置不
阅读全文