当前位置:主页 > Office办公

最新发布

sharePoint 2016 弃用和删除的功能
sharePoint 2016 弃用和删除的功能

sharepoint 2016版本正式发布,但是相比较2013版本,还是删除或者准备删除一些功能,我们需要了解一下哪些功能已经被删除掉或者在下一个版本中移除,因为这些可能影响我们现有系统是否能够平稳由其他版本升级到sharepoint server 2016。   以下特性和功能在 SharePoint Server 中已弃用或已删除。    Microsoft SharePoint 的 Duet Enterprise   无法使用 SharePoint Server 2016 部署 Microsoft SharePoint 的 Duet Enterprise 和 SAP。SharePoint Server 2016 没有任何 Duet 组件,因此不会安装。   如果您要部署 Microsoft SharePoint 的 Duet Enterprise,则必须使用 SharePoint Server 2013 企业版。   SharePoint Foundation   SharePoint Foundation 2013 仍然可用。有关详细信息,请参阅 SharePoint Foundation 2013。  SharePoint Server 的以前版本包括 SharePoint Foundation,这是 SharePoint 的免费版本,其中包括 SharePoint 商业版本提供的大多数核心功能和体系结构。SharePoint Foundation 在 SharePoint Server 2016 版本中不再可用。

SharePoint 配置向导报错 - The 'ListInternal' attribute is not allowed
SharePoint 配置向导报错 - The 'ListInternal' attribute is not allowed

配置SharePoint 2016的配置向导中,第三步创建配置数据库报错,然后百度、谷歌了一下,都没有解决,自己看日志搞定,也许会有人遇到类似问题,分享一下。  1、配置向导的错误截图,如下图:  2、根据上图找到错误日志,日志里的详细信息,如下: Failed to create the configuration database. An exception of type System.Xml.Schema.XmlSchemaException was thrown. Additional exception information: Feature definition with Id ca7bd552-10b1-4563-85b9-5ed1d39c962a failed validation, file 'fieldswss4.xml', line 68, character 9: The 'ListInternal' attribute is not allowed. System.Xml.Schema.XmlSchemaException: Feature definition with Id ca7bd552-10b1-4563-85b9-5ed1d39c962a failed validation, file 'fieldswss4.xml', line 68, character 9: The 'ListInternal' attribute is not allowed. ---> System.Xml.Schema.XmlSchemaValidationException: The 'ListInternal' attribute is not allowed. --- End of inner exception stack trace --- at Microsoft.SharePoint.Administration.SPElementManifest.ElementXmlValidationCallBack(Object sender, ValidationEventArgs evtargs) at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(String code, String arg) at System.Xml.Schema.XmlSchemaValidator.ValidateAttribute(String lName, String ns, XmlValueGetter attributeValueGetter, String attributeStringValue, XmlSchemaInfo schemaInfo) at System.Xml.Schema.XmlSchemaValidator.ValidateAttribute(String localName, String namespaceUri, XmlValueGetter attributeValue, XmlSchemaInfo schemaInfo) at System.Xml.XsdValidatingReader.ValidateAttributes() at System.Xml.XsdValidatingReader.ProcessElementEvent() at System.Xml.XsdValidatingReader.Read() at System.Xml.XmlReader.MoveToContent() at System.Xml.XmlReader.IsStartElement() at Microsoft.SharePoint.Utilities.SPUtility.XsdValidateXml(XmlTextReader xmlStreamReader, String friendlyName, String pathXsdFile, String tagExpectedRootNode, Int32 desiredPathVersion, ValidationEventHandler xsdValEventHandler) at Microsoft.SharePoint.Administration.SPElementManifest.ValidateDefinition(String pathToFeatureAndElementManifestXsdFile) at Microsoft.SharePoint.Administration.SPFeatureDefinition.ValidateElementManifestXml(String pathToFeatureAndElementManifestXsdFile) at Microsoft.SharePoint.Administration.SPFeatureDefinition.ValidateDefinition(String pathToFeatureAndElementManifestXsdFile) at Microsoft.SharePoint.Administration.SPFeatureDefinitionCollection.AddCore(SPFeatureDefinition featdef, SPSite site, String solutionHash, Boolean fForce, Boolean fDoValidation, String pathToFeatureAndElementManifestXsdFile) at Microsoft.SharePoint.Administration.SPFarmFactory.EnsureOutOfBoxFeaturesInstalled(SPFarm farm, String[] rgsOutOfBoxFeatures, Int32 compatibilityLevel) at Microsoft.SharePoint.Administration.SPFarmFactory.CreateBasicServices(SPFarm farm) at Microsoft.SharePoint.Administration.SPFarmFactory.Create() at Microsoft.SharePoint.Administration.SPFarm.Create(SqlConnectionStringBuilder configurationDatabase, SqlConnectionStringBuilder administrationContentDatabase, SqlConnectionStringBuilder siteMapDatabase, IdentityType identityType, String farmUser, SecureString farmPassword, SecureString masterPassphrase) at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.CreateOrConnectConfigDb() at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.Run() at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()   3、找到fieldswss4这个文件,如下图:  4、用vs打开fieldswss4这个文件,发现确实有这个属性,而且是有报错提醒的,如下图:  5、在SharePoint 2013环境中找到如下位置,发现也有类似文件,如下图:

291 次浏览
SharePoint 使用Designer报错
SharePoint 使用Designer报错

在SharePoint Online中使用Designer报错,错误为:This Feature has been disabled by your administrator.找了好久发现原因,分享给大家。  1、在SharePoint Online的列表中,点击编辑列表,如下图:  2、弹出确认对话框,点击Yes,如下图:  3、发现SharePoint Designer报错,而且不在列表中的按钮触发,先打开Designer,再打开网站也报错,如下图:  This Feature has been disabled by your administrator.  4、点击关闭上图的错误对话框,发现还有新的对话框,如下图:

283 次浏览
SharePoint 如何使用列表库发布新闻
SharePoint 如何使用列表库发布新闻

本文我们演示一下如何使用SharePoint自带的列表应用程序,定制一个公司新闻的栏目。  其间,用到的主要工具是SharePoint Designer 2013,免费下载使用的。  1、打开我们的站点,点击右上角小齿轮,点击添加应用程序,如下图:  2、选择自定义列表,用来保存和编辑我们的新闻,里面保存的是我们的新闻的内容,如下图:  3、填写列表名称,点击创建,稍等片刻即可;  4、进入我们创建好的列表,点击列表设置,修改一下列表的基本设置;

SharePoint 如何通过JavaScript实现列表标题列宽度可拖动
SharePoint 如何通过JavaScript实现列表标题列宽度可拖动

最近有个新需求,用户希望标题栏可以拖动宽度,其实觉得没什么用,既然用户要了又推不掉,就勉为其难实现一下吧。  其实原理比较简单,就是利用JavaScript对标题栏进行宽度控制,然后从网上搜了一下,碰巧看到有人写好的方法,秉承拿来主义的精神,就借用了一下,详细脚本参考附录。  1、默认的SharePoint列表是下面的样子,每一列的内容都是自适应的,很紧凑,其实也还好;  2、拖动以后的样子是下面的,其实感觉也没什么用,很鸡肋,想想用户后续肯定会提,把当前状态保存下来的需求;  虽然自己这次没有把这个需求做好,但是心里有底了,依旧利用JavaScript把各个列的宽度,保存到cookie里就行了;当然有人说禁用了cookie的问题,那就想办法存到url或者服务器端控件吧;还好我们统一的IE策略,不会禁用cookie的。  3、其实具体步骤非常简单,就是把附录的脚本文件传到文档库,引用一下,然后在这个视图中初始化一下这个表格就可以了;  4、然后在页面上的引用,也非常简单,如下图:

SharePoint 日期和时间字段格式设置实例教程
SharePoint 日期和时间字段格式设置实例教程

最近碰到一个需求,用户希望修改日期和时间字段的格式,因为自己的环境是英文的,默认的时间格式是[月/日/年]这样的格式,我也是碰到这个问题才知道,这是美式的时间格式,然而用户希望变成英式的时间格式,也就是[日/月/年]这样的格式。  我很是纠结了一下下,因为知道日期和时间类型的字段设置里,是没有这个设置的,而修改SharePoint环境的时区,可能会有时差的问题,也会影响整个服务器场。最最主要的原因是这个需求实在是没有任何意义!  本着用户虐我千万遍,我待用户如初恋的原则,还是硬着头皮去谷歌了一下,发现确实有地方可以设置,现在总结一下,分享给大家。  1、我这里英文环境的默认格式,是[月/日/年份]的格式,然后是12小时制,如下图:  2、进入网站设置,站点管理选项下有这么个选项,叫做Regional settings,是区域设置的意思,如下图:  3、进去以后发现有站点级别的时区设置和区域设置,真好!!如下图:  4、我把Locale设置为English(United Kingdom),发现就变成英式的时间格式了,如下图:

如何在Visual Studio 中添加SharePoint  开发模板
如何在Visual Studio 中添加SharePoint 开发模板

SharePoint 2016已经发布很久了,然而,默认安装VS2015以后,却没有SharePoint 2016的开发模板。其实问题很简单,和VS2012开发SharePoint 2013一样,需要装插件。主要因为VS2015的发布时间比SharePoint 2016稍早一些。插件名称Microsoft Office Developer Tools Preview 2 for Visual Studio 2015下载地址  https://www.microsoft.com/en-us/download/details.aspx?id=51683  特别提醒,记得选对你的语言啊!而且,VS开发SharePoint模板,需要在装有SharePoint环境的服务器的Visual Studio中才能使用,有点绕口令的感觉?!好像是哦!呵呵。安装效果  至于SharePoint 2016的开发,感觉和2013没有什么特别的区别,有新接触开发的朋友,可以参考博客首页的SharePoint 2013开发系列教程。

342 次浏览
SharePoint 2016 必备组件离线安装介绍
SharePoint 2016 必备组件离线安装介绍

SharePoint 必备组件安装,一直以来都是SharePoint安装过程中的最大的坑,尤其是不能联网的服务器。博主在这里简单介绍一下离线安装过程,并附组件包下载以及安装命令,并且在windows server 2016中亲测可用,其他版本服务器请自行测试。  1、组件介绍:• Web Server (IIS) Role• Microsoft SQL Server 2012 Native Client• Microsoft ODBC Driver 11 for SQL Server• Microsoft Sync Framework Runtime v1.0 SP1 (x64)• Windows Server AppFabric• Microsoft Identity Extensions• Microsoft Information Protection and Control Client 2.1• Microsoft WCF Data Services 5.6

SharePoint 2016 入门视频教程 免费下载
SharePoint 2016 入门视频教程 免费下载

有朋友让自己录一些SharePoint的入门视频,之前没有太多时间,一个巧合的机会收到CSDN学院的邮件,可以在CSDN上发布视频教程,自己就录了一些。说起录视频也是蛮辛苦的,每天下班吃完饭要哄一会儿孩子,九点左右打开电脑去厨房开始写ppt,查一些资料,然后自己先做一下实验,觉得没问题了再开始录制。每天完成也要12点以后了,虽然很辛苦还是一直坚持下来,很多朋友跟我说免费,自己也真的想过,不过生活开销也大,所以还是没有免费。   视频主要就是SharePoint的入门,很多东西都是博客里之前介绍过的,如果介意收费的就可以直接在博客里找相关的图文教程,霖雨觉得图文教程也是很详尽的,呵呵。不论视频教程是否有没有很多人购买,自己都希望做点自己喜欢的事儿,把技术分享给大家。或许有些人觉得很功利,其实,几个朋友吃一顿饭需要多少大洋?装个环境遇到问题一周解决不了又值多少大洋?我觉得有些时候付出点还是会有收获的,呵呵。好了,不嘚瑟了,下面简单介绍一下入门教程的目录,而且在接下来的时间里,自己还会继续录制开发入门教程,希望大家能有喜欢。  视频教程目录 •课程简介 •SharePoint 平台发展及简介 •SharePoint 2016 安装简介 •SharePoint 2016 站点功能简介 •SharePoint 2016 站点功能之回收站 •SharePoint 2016 站点功能之域名配置 •SharePoint 2016 库功能简介 •SharePoint 2016 库功能简介问题补充 •SharePoint 2016 字段类型简介 •SharePoint 2016 计算值字段简介 •SharePoint 2016 内容类型简介 •SharePoint 2016 权限体系介绍 •SharePoint 2016 如何创建及使用母版页 •SharePoint 2016 如何创建及使用页面布局和页面 •SharePoint 2016 定制个性化列表表单 •SharePoint 2016 数据视图的简单搜索 •SharePoint 2016 站点的备份和还原 •SharePoint 2016 遇到错误如何进行排错  教程的目录是这样的,自己在录制过程中,觉得有意义的东西,还会插入进来,不定时更新。  视频地址:http://edu.csdn.net/course/detail/3333

302 次浏览
SharePoint 如何自定义城市和区域字段
SharePoint 如何自定义城市和区域字段

最近有这么一个需求,就是用到中国的各种行政区,然后还是三级联动,就琢磨写这么一个字段。然后,觉得挺有意义的,写字段的过程也有点心得,就想到拿到博客里分享给大家,一起看看。   1、 创建字段的解决方案,包括:字段类、字段控件类、字段控件的前台文件、字段的描述文件、城市和区域的数据列表、字段的Feature和其中所需要的JavaScript库和文件。  2、 在字段的前台控件上,添加我们需要的控件,当在显示视图(DispForm)的时候,只有一个Label控件用来显示值,除此之外的视图(NewForm和EditForm)的时候,有一个Label控件用来输入下拉框等的html,一个TextBox控件用来保存和修改值,一个隐藏字段用来存一个Guid,防止一个列表加多个字段时,控件的Id有重复。  3、 初始化控件的核心代码,主要包括输入城市和区域下拉框控件的Html代码,并且绑定相关的事件。 protected override void CreateChildControls() { base.CreateChildControls(); if (this.Field != null) { this.lbValue = (Label)TemplateContainer.FindControl("lbValue"); this.tbValue = (TextBox)TemplateContainer.FindControl("tbValue"); this.hfValue = (HiddenField)TemplateContainer.FindControl("hfValue"); this.lbValueResult = (Label)TemplateContainer.FindControl("lbValueResult"); } if (this.ControlMode == SPControlMode.Display) { if (lbValueResult != null) { lbValueResult.Text = this.ItemFieldValue.ToString(); } } else { string myGuid = Guid.NewGuid().ToString().Replace("-", ""); string scriptLink = "<script type='text/javascript' src='/_layouts/15/LinyuCityField/Script.js'></script><script type='text/javascript' src='/_layouts/15/LinyuCityField/jquery-1.7.1.js'></script>"; string scriptInit = @"<script type='text/javascript'>$(document).ready(function(){ setInterval(syncValue,1000); initSelect('" + myGuid + @"province','0'); $('#" + myGuid + @"province').change(function(){ var vv = $(this).val(); //if(vv=='11'||vv=='12'||vv=='31'||vv=='50'){$('#" + myGuid + @"district').hide();}else{$('#" + myGuid + @"district').show();} $('#" + myGuid + @"city').empty(); initSelect('" + myGuid + @"city',vv); $('#" + myGuid + @"district').empty(); }); $('#" + myGuid + @"city').change(function(){ var vv = $(this).val(); var lsvv=vv.substring(0,2); //if(lsvv=='11'||lsvv=='31'||lsvv=='12'||lsvv=='50'){$('#" + myGuid + @"district').hide();}else{$('#" + myGuid + @"district').show();} $('#" + myGuid + @"district').empty(); initSelect('" + myGuid + @"district',vv); }); });</script>"; string scriptInit2 = @"<script type='text/javascript'>$(document).ready(function(){ setInterval(syncValue,1000); $('#" + myGuid + @"province').change(function(){ var vv = $(this).val(); //if(vv=='11'||vv=='12'||vv=='31'||vv=='50'){$('#" + myGuid + @"district').hide();}else{$('#" + myGuid + @"district').show();} $('#" + myGuid + @"city').empty(); initSelect('" + myGuid + @"city',vv); $('#" + myGuid + @"district').empty(); }); $('#" + myGuid + @"city').change(function(){ var vv = $(this).val(); var lsvv=vv.substring(0,2); //if(lsvv=='11'||lsvv=='31'||lsvv=='12'||lsvv=='50'){$('#" + myGuid + @"district').hide();}else{$('#" + myGuid + @"district').show();} $('#" + myGuid + @"district').empty(); initSelect('" + myGuid + @"district',vv); }); });</script>"; Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptLink", scriptLink); string selectHtml = string.Empty; if (this.ControlMode == SPControlMode.New) { Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptInit", scriptInit); selectHtml = "<select id='" + myGuid + "province'></select><select id='" + myGuid + "city'></select><select id='" + myGuid + "district'></select>"; } else { string fieldValue = this.ItemFieldValue.ToString(); string[] filedValues = fieldValue.Split('-'); selectHtml = initEditHtml(myGuid, fieldValue); Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptInit2", scriptInit2); } if (hfValue != null) hfValue.Value = myGuid; if (lbValue != null) lbValue.Text = selectHtml; } }   4、 编辑页面时初始化控件的代码,包括省、城市、区域。 public string initEditHtml(string myGuid, string fieldValue) { string html = string.Empty; string[] fvs = fieldValue.Split('-'); string province = string.Empty; string city = string.Empty; string district = string.Empty; using (SPSite site = new SPSite(SPContext.Current.Site.ID)) { using (SPWeb web = site.OpenWeb(SPContext.Current.Web.ID)) { SPList list = web.Lists.TryGetList("CityDataSourse"); SPQuery query1 = new SPQuery(); SPQuery query2 = new SPQuery(); SPQuery query3 = new SPQuery(); SPListItem item1; SPListItem item2; SPListItem item3; switch (fvs.Length) { case 1: query1.Query = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fvs[0] + "</Value></Eq></Where>"; item1 = list.GetItems(query1)[0]; province = getOptions(item1["ParentId"].ToString(), item1["Title"].ToString()); break; case 2: query1.Query = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fvs[0] + "</Value></Eq></Where>"; item1 = list.GetItems(query1)[0]; province = getOptions(item1["ParentId"].ToString(), item1["Title"].ToString()); query2.Query = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fvs[1] + "</Value></Eq></Where>"; item2 = list.GetItems(query2)[0]; city = getOptions(item2["ParentId"].ToString(), item2["Title"].ToString()); break; case 3: query1.Query = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fvs[0] + "</Value></Eq></Where>"; item1 = list.GetItems(query1)[0]; province = getOptions(item1["ParentId"].ToString(), item1["Title"].ToString()); query2.Query = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fvs[1] + "</Value></Eq></Where>"; item2 = list.GetItems(query2)[0]; city = getOptions(item2["ParentId"].ToString(), item2["Title"].ToString()); query3.Query = "<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fvs[2] + "</Value></Eq></Where>"; item3 = list.GetItems(query3)[0]; district = getOptions(item3["ParentId"].ToString(), item3["Title"].ToString()); break; } } } html = "<select id='" + myGuid + "province'>" + province + "</select><select id='" + myGuid + "city'>" + city + "</select><select id='" + myGuid + "district'>" + district + "</select>"; return html; }   5、 前台JavaScript的原理,根据当前选项的ID获取下一级控件并初始化,Id是下一级控件的Id后缀部分,vv也就是关联的ParentId。  http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201608/t20160809_1386477.html function initSelect(Id, vv) { try { var hfId = $("#DefaultCustomFieldControlZone input[type='hidden']").val(); if (vv == "11" || vv == "12" || vv == "31" || vv == "50") { $("#" + hfId + "district").hide(); } else { $("#" + hfId + "district").show(); } var mycontext = new SP.ClientContext.get_current(); var mysite = mycontext.get_web(); var query = new SP.CamlQuery(); query.set_viewXml("<View><Query><Where><Eq><FieldRef Name='ParentId' /><Value Type='Text'>" + vv + "</Value></Eq></Where></Query></View>"); var mylist = mysite.get_lists().getByTitle('CityDataSourse'); myitem = mylist.getItems(query); mycontext.load(myitem, 'Include(Title,Id,CityId,Code)'); mycontext.executeQueryAsync(Function.createDelegate(this, function () { try { $("#" + Id + " option").remove(); var listsE = myitem.getEnumerator(); while (listsE.moveNext()) { $("#" + Id).append("<option value='" + listsE.get_current().get_item("CityId") + "'>" + listsE.get_current().get_item("Title") + "</option>"); } } catch (ex) { console.log(ex) } }), Function.createDelegate(this, function () { alert("failed") })); } catch (ex) { } }   6、 初始化行政区,根据国家统计局的最新县及县以上行政区划代码,用jquery获取DOM元素,并且格式化成我需要的格式,放到列表实例里面使用,这样激活解决方案以后,就有数据源了。

共计75934条记录 上一页 1.. 7338 7339 7340 7341 7342 7343 7344 ..7594 下一页