SharePoint JS Link 之(一) 改变column的颜色

在SharePoint2013之前,想要修改列表项表单的样式,是一件非常痛苦的事情。一般来说,任何的列表都包含三种表单:

1.      新建列表项(new)

2.      编辑属性(edit properties)

3.      查看列表项(view properties)

除此之外,还有一种显示方法,就是在视图(view)显示,比如:

在SharePoint 2013里,新加了一个功能叫JSLink,有了它,不用写任何后台代码,只需要写JS就能修改列表项的显示了。

比如,我想修改Language列的值颜色,不同的语言显示不同的颜色,如何做到呢?

再次之前先新建一个空白js文件。一个JSLink 文件通常包含两个部分:

1.      注册相关信息给SharePoint。

要修改那个表单/视图? 要修改哪个列?新样式的实现方法是哪个?

2.      新样式的实现方法

这里面返回新的样式的html代码。

首先说第一点。

(function () {

   var FiledContext = {};
   FiledContext.Templates = {};
   FiledContext.Templates.Fields = {
       //为我们要修改颜色的列,定义一个重写样式的方法
       "Language": { "View": FiledTemplate }
                   //Language是要修改颜色的列
     //View表示要修改的是视图上的显示
     //FieldTemplate 是新的样式的实现方法
   };

   //注册Context给SharePoint
   SPClientTemplates.TemplateManager.RegisterTemplateOverrides(FiledContext);

})();

第二点,返回新的样式:

// 重写样式的方法
function FiledTemplate(ctx) {

   var Language = ctx.CurrentItem[ctx.CurrentFieldSchema.Name];

   //在这里返回新的html
   switch (Language) {
       case "English":
           return "<spanstyle='color :#D9D919'>" + Language + "</span>";
           break;
       case "Korean (Korea)":
           return "<span style='color :#2D882D'>" + Language +"</span>";
           break;
    }
}

最终的代码是:

(function () {

   var FiledContext = {};
   FiledContext.Templates = {};
   FiledContext.Templates.Fields = {
       //为我们要修改颜色的列,定义一个重写样式的方法
       "Language": { "View": FiledTemplate }
   };

   //注册Context给SharePoint
   SPClientTemplates.TemplateManager.RegisterTemplateOverrides(FiledContext);

})();

// 重写样式的方法
function FiledTemplate(ctx) {

   var Language = ctx.CurrentItem[ctx.CurrentFieldSchema.Name];

   //在这里返回新的html
   switch (Language) {
       case "English":
           return "<span style='color :#D9D919'>" + Language +"</span>";
           break;
       case "Korean (Korea)":
           return "<span style='color :#2D882D'>" + Language +"</span>";
           break;
    }
}

把文件保存成ColumnColor.js,上传到Style Library里。其实你也可以传到其他文档库里,或者是layout下面。

打开文档库的视图,编辑页面,找到文档库视图的web part,编辑webpart,在JSLink里面填写:

~sitecollection/Style Library/JSLink/ColumnColor.js

点OK,停止编辑页面。 就会看到下面的效果:

代码下载地址: http://download.csdn.net/detail/spfarm/8427007

时间: 2024-12-28 06:21:08

SharePoint JS Link 之(一) 改变column的颜色的相关文章

SharePoint JS Link 之(二) 改变表单中column的颜色

按照前一篇( SharePoint JS Link 之(一) 改变column的颜色 )修改之后,查看文档属性,发现Language列颜色并没有变: 要想让这个颜色变,需要做一些修改.为displayForm注册一个事件: (function () { var FieldContext = {}; FieldContext.Templates = {}; FieldContext.Templates.Fields = { //为我们要修改颜色的列,定义一个重写样式的方法 "Language&qu

SharePoint JS Link 之( 三)如何设置JSLink的引用

JSLink文件写好之后,除了手动部署到SharePoint里,还有其他办法吗? 有多种方法可以设置JSLink的JavaScript 文件的引用: server object model WindowsPowerShell Features里面的Element.xml文件 Web Part 属性 client object model. 下面是一些例子: Server Object Model: 先找到目标表单,然后再通过JSLink属性来设置: SPWeb web= SPContext.Cu

SharePoint JS Link 之(五)关于JSLink的一些FAQ

关于JSLink的一些FAQ 1.    JSLink可以被应用在哪里? JSLink 可以被应用到fields, Web Parts, 列表表单(list form), 视图(view)和内容类型(content type). 2.    JSLink文件可以放到哪里? JSLink可以放到SharePoint的任何的文档库里,或者layout文件夹下.放到不同的位置,在引用的时候,前缀也不一样: § ~site-表示要引用的JSLink文件在当前站点下 § ~sitecollection-表

SharePoint JS Link 之(四)JSlink常见例子和代码下载

MSDN上有很多关于JSLink的示例代码可供下载. 下面举几个常用的例子. 1.      为文件加图标 下载地址:https://code.msdn.microsoft.com/office/Client-side-rendering-code-97e27fa1 2.      柱状图显示百分比 https://code.msdn.microsoft.com/office/Client-side-rendering-code-f1068b4b 3.      正则表达式验证邮件地址 http

Sharepoint 2013 列表使用JS Link

使用JS Link可以向Sharepoint List注册脚本,重写Field模板,使得对于符合条件的字段改变格式和样式.但是有一个问题是,页面postback的话,JS不会被触发,不知道怎么解,有知道的留言下,谢谢. webpart中或者是列表中添加JS Link JS Link地址的格式如下,不能写相对路径或者绝对路径,不然Alert不出来的. ~sitecollection/SiteAssets/js/xxxxxx.js 实例代码,功能是,一个Url 类型的字段,如果字段的文本日期是这个月

用JS让下拉框改变网页背景颜色

<HTML> <HEAD> <TITLE>石家庄渣浆泵配件</TITLE> </HEAD> <SCRIPT> <!-- function bgChange(selObj) { newColor = selObj.options[selObj.selectedIndex].text; document.bgColor = newColor; selObj.selectedIndex = -1; } //--> </SC

js实现图片拖动改变顺序

在web页面中,需要改变多个元素的位置,可以通过元素拖动来实现.HTML5中加入了一个全局属性draggable,通过设置true/false来控制元素是否可拖动. 下面以图片拖动为例,用jQuery来实现:页面上有多个图片,把一个图片拖动到其他两个图片中间,就可以将这个图片的位置插入到两图之间. <!DOCTYPE html> <html> <head> <style> .img-div img { width:200px; height:200px; f

设置超链接在各种状态改变的样式颜色

设置超链接在各种状态改变的样式颜色,在html的<head>标签下面添加下面的样式,可以自己根据需要修改样式. <style> a:link {color:blue;} a:visited {color:blue;} a:hover {color:red;} a:active {color:yellow;} </style> a:link 表示未未访问的状态. a:visited 表示已访问过的状态. a:hover  表示鼠标移动到链接上时的状态. a:active 

CSS改变插入光标颜色caret-color简介及其它变色方法(转)

一.CSS改变输入框光标颜色的原生属性caret-color CSS caret-color属性可以改变输入框插入光标的颜色,同时又不改变输入框里面的内容的颜色. 例如: input { color: #333; caret-color: red; } 结果光标颜色变成红色,文字还是深黑色: 眼见为实,您可以狠狠的点击这里:CSS caret-color改变光标颜色demo //zxx: 单词caret表示"插入符号",指处于内容可插入状态的光标. caret-color属性不仅对于原