当前位置:主页 > Office办公 > 其他专区

最新发布

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开发系列教程。

340 次浏览
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

301 次浏览
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元素,并且格式化成我需要的格式,放到列表实例里面使用,这样激活解决方案以后,就有数据源了。

SharePoint 文档库的新功能简介
SharePoint 文档库的新功能简介

今天,重装了一下SharePoint 2016,想多了解了解,看到一些自己平时没注意的功能,或者新的功能,分享一下给大家。  1、界面上操作的变换,多了一排按钮,更像SharePoint Online了,呵呵;这一排按钮可以新建、上传、同步、共享等操作;  2、共享功能的界面有了新的变化,看起来更加简洁了,把查看权限和邀请分开了,如下图:  2013中界面:  2016中界面:  3、多了打开链接在移动设备,我们可以点击这个按钮,然后出一个二维码,用移动设备扫面就可以了,很有意思的功能;

327 次浏览
SharePoint 如何配置应用程序商店
SharePoint 如何配置应用程序商店

最近碰到一个新的需求,就是要给SharePoint配置应用程序商店,挺有意思的,就简单的配置和记录了一下,分享给大家。  其实应用程序商店之前感觉很鸡肋,但是用起来还是不错的。不喜勿喷,呵呵。  首先需要配置DNS  1、在DNS管理端添加一个新区域,为了添加泛域名。  2、添加区域的向导,下一步就可以了;  3、如下图,不需要改什么;  4、选择第二个选项,下一步就可以了;

SharePoint 安装 Cumulative Update for Service Bus 1.0 (KB2799752)报错
SharePoint 安装 Cumulative Update for Service Bus 1.0 (KB2799752)报错

SharePoint 服务器场安装workflow manager 1.0的时候,报下面的错误,搜了很多博客都没有解决。然后,灵机一动,下载了一个英文版的累计更新包,安装成功了。  SharePoint 配置workflow manager 1.0的过程中,需要按照顺序安装以下软件:  而安装WorkflowManagerRefresh的前提条件必须安装ServiceBus的累计更新(KB2799752)。我在安装累计更新的过程中报如下错误:  查了很多文章,发现可以使用PowerShell(windows)命令进行安装,但是依旧报错。怀疑是累计更新补丁的问题,也下载了多次,最后不得已尝试一下英文版吧,结果用PowerShell直接就装上了。安装完毕,思前想后,觉得可能Service Bus本身安装的版本就是英文版,所以累计更新也需要英文版,希望大家遇到类似的情况要注意。  安装补丁的PowerShell命令:Start-Process -FilePath "C:\ServiceBus\ServiceBus-KB2799752-x64-EN.exe" -ArgumentList "/passive" -Wait -PassThru   安装界面的截图,这里是Windows PowerShell,不是SharePoint的命令行工具,注意!       结束语  累计更新的语言应该由安装包决定的,而不是操作系统是中文版,就得装中文版,算是一个教训吧。内容比较简单,希望能够给遇到类似问题的朋友,带来一定的帮助。

269 次浏览
SharePoint 切换用户的小技巧
SharePoint 切换用户的小技巧

从SharePoint 2013开始,SharePoint就已经去掉了”Sign in as Different User”这个功能,也就是无法切换用户登录。当然,后来我们通过修改CONTROLTEMPLATES目录下的Welcome.ascx控件解决了这个问题。  但是,如果我们的机器已经加入到和SharePoint同一个AD域中,而且已经信任站点进行了自动登录,这个切换注销以后,依然可以自动登陆上去,我们还是无法进行用户切换,这里,我们就可以利用一下windows的一个小功能解决这一问题。  添加切换用户按钮  找到Welcome.ascx控件,位置如下图:  加上这么一段代码  代码<SharePoint:MenuItemTemplate runat="server" ID="ID_LoginAsDifferentUser" Text="<%$Resources:wss,personalactions_loginasdifferentuser%>" Description="<%$Resources:wss,personalactions_loginasdifferentuserdescription%>" MenuGroupId="100" Sequence="100" UseShortId="true"/>   如果没有这个功能,我们可以在浏览器的快捷方式上,按住shift的同时点击鼠标右键,以其他用户打开浏览器,然后输入你想要登陆的账号和密码,就可以了:

278 次浏览
共计17238条记录 上一页 1.. 1640 1641 1642 1643 1644 1645 1646 ..1724 下一页