1、点击进入NewForm.aspx页面,编辑页面,插入Script Editor WebPart,如下图:

  2、插入后如下图,拖动AutoRecord WebPart到脚本编辑器上面,防止因为加载顺序的问题无法找到页面上的DOM;

  3、在脚本编辑器中添加脚本的外部引用,和需要执行的方法,如下图:

  4、去引用的外部脚本中,编写我们的脚本,如下图:

  原理就是用脚本在现有的Save按钮前添加一个新的Save按钮,同时隐藏掉默认的,新按钮的功能就是将要保存的字段值写到Cookie里面,并执行旧按钮的保存事件;

  5、新建一个记录,点击我们新加入的按钮“Save2”来保存,如下图:

  6、保存以后的效果,如下图:

  7、再次新建项目,会自动从Cookie中读取到值,然后赋值给Title字段,如下图:

  8、测试成功以后,接下来的工作就是在脚本中修改,隐藏掉Save按钮,把Save2按钮的名字改成Save,即可完成工作,最终效果如下图:

总结

  SharePoint中脚本的应用是非常灵活的,当然QQ群里讨论的时候,还有朋友说可以写到后台中,用Ajax去处理,也都是不错的建议;

  本文介绍的是最简单的字段,也就是单行文本字段;如果遇到下拉框等特殊的字段,可以参考本文处理,不过不一定适用于所有情况;

  好了,就到这里,休息。。休息一下。。

附完整脚本

 var CookieName = "TitleField";
var FieldId = "Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField";
var BtnId = "ctl00_ctl38_g_ea9475eb_d286_4078_99f1_24eff0577987_ctl00_toolBarTbl_RightRptControls_ctl00_ctl00_diidIOSaveItem"; function GetCookie()
{
try
{
var arr,reg = new RegExp("(^| )" + CookieName + "=([^;]*)(;|$)"); if(arr = document.cookie.match(reg))
{
document.getElementById(FieldId).value = unescape(arr[2]);
return unescape(arr[2]);
}
else
{
return null;
}
}
catch(ex){}
} function SetCookie()
{
var value = document.getElementById(FieldId).value;
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = CookieName + "=" + escape (value) + ";expires=" + exp.toGMTString();
var btn = document.getElementById(BtnId);
btn.click();
} function BindSaveButton()
{
var newBtn = "<input type='button' onclick='SetCookie()' value='Save'></input>";
var btn = document.getElementById(BtnId);
btn.outerHTML = newBtn + "<span style='display:none;'>" +btn.outerHTML + "</span>";
}

SharePoint 2013 新建项目字段自动加载上次保存值的更多相关文章

  1. 原生servlet项目启动自动加载一个方法

    web.xml里的配置: 配置好要加载的类,其中1这一句是项目启动时自动加载该类的必要条件. <servlet> <servlet-name>SharePltfCLServle ...

  2. MSIL实用指南-字段的加载和保存

    字段有静态字段和非静态字段之分,它们的加载保存指令也是不一样的,并且非静态字段要生成this. 静态字段的加载加载静态字段的指令是Ldsfld.ilGenerator.Emit(OpCodes.Lds ...

  3. qt+vs2005新建配置不自动加载Generated Files进工程(个人备份)

    工程右键Qt Project Settings 的Moc Directory路径删除 确定,再进入将删除路径加上

  4. 手工下载php的composer软件包,如何让项目自动加载包里的类

    有的时候需要手工下载php的composer包 1.将下载好的包放到项目的vendor目录下,比如包名:pinguo/php-aop 2.然后查看软件包目录(vendor/pinguo/php-aop ...

  5. Springboot项目自动加载设置

    SpringBoot是允许项目自动加载的,但是需要在pom文件映入依赖库 1.导入依赖库 <dependency> <groupId>org.springframework.b ...

  6. [PHP] 项目实践中的自动加载实现

    1.使用spl_autoload_register函数注册一个自己定义的自动加载函数2.当在代码中new一个不存在的类的时候,上面的函数会被调用,不存在的类名会被作为参数传入该函数中3.兼容了两种方式 ...

  7. 🐯 php项目中类的自动加载

    主要函数:spl_autoload_register() — 注册给定的函数作为 __autoload() 的实现 将函数注册到SPL __autoload函数队列中.如果该队列中的函数尚未激活,则激 ...

  8. 深入解析 composer 的自动加载原理 (转)

    深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...

  9. PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置

    一.类自动载入 SPL函数 (standard php librarys) 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_registe ...

随机推荐

  1. (转)sql的join图解

    假设我们有两张表,Table A是左边的表,Table B是右边的表. 其各有四条记录,其中有两条记录是相同的,如下所示: 1 id name       id  name 2 -- ----     ...

  2. .net using使用小结

    在.net中using使用方法有3种,分别是using指令.using定义使用范围.using别名. using指令,即引用命名空间. using System; using System.Colle ...

  3. Logger

    public static object locker = new object(); public static LogConfiguration LogConfig { set; get; } s ...

  4. CompressHelper

    public static string CompressString(string unCompressedString) { byte[] bytData = System.Text.Encodi ...

  5. Java 多线程下的单例模式

    单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.正是由于这个特 点,单例对象通常作为程序中的存放配置信息的载体,因为它能保证 ...

  6. struct

    struct QSortStack { public int high; public int low; } QSortStack* stack = ]; unsafe static void qso ...

  7. ASP.NET MVC程序播放H.264视频

    在这篇之前,Insus.NET不管是在ASP.NET还是ASP.NET MVC实现很多视频播放,你可以参考这篇链接:http://www.cnblogs.com/insus/category/4650 ...

  8. C#获取执行存储过程的" 返回值"代码

    以下是C#代码: /// <summary> /// 执行存储过程,返回" 返回值" /// </summary> /// <param name=& ...

  9. Oracle Error - "OCIEnvCreate failed with return code -1 but error message text was not available".

    ISSUE: When trying to connect to an Oracle database you receive the following error: "OCIEnvCre ...

  10. httpclient 调用WebAPI

    1.创建webapi项目,提供接口方法如下: /// <summary> /// 获取租户.位置下的所有传感器 /// </summary> /// <returns&g ...