SharePoint 2013 新建项目字段自动加载上次保存值

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

clip_image001

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

clip_image002

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

clip_image003

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

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

clip_image004

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

clip_image005

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

clip_image006

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

clip_image007

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

clip_image008

总结

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

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

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

附完整脚本

var CookieName = "TitleField";
var FieldId = "Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField";
var BtnId = "ctl00_ctl38_g_ea9475eb_d286_4078_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' οnclick='SetCookie()' value='Save'></input>";
	var btn = document.getElementById(BtnId);
	btn.outerHTML = newBtn + "<span style='display:none;'>" +btn.outerHTML + "</span>";
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霖雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值