Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮
昨天一同事问我如何在sharepoint2013的NewForm.aspx页面上添加一个 save and new的button。实现save 和new的功能,save的功能和默认的save按钮效果一至。
效果如图:
这里的思路如下:
1)用juqery来动态添加一个saveandnew的button
2)新建按钮的click事件将要调用默认save 按钮的click方法
3)新按钮的click事件后页面跳转主要取决于url的Source参数,所以我们必须改写获取该参数的方法,该参数的读取是在init.debug.js的GetUrlKeyValue方法。
修改方式如下:
window.savefun = GetUrlKeyValue;
window.GetUrlKeyValue = function (keyName, bNoDecode, url, bCaseInsensitive) {
if (keyName != "Source") {
return window.savefun(keyName, bNoDecode, url, bCaseInsensitive);
}
else {
return "/Lists/CustList/NewForm.aspx";
}
}
首先我需要把原先的GetUrlKeyValue方法保存起来,然后覆盖默认的GetUrlKeyValue方法。这是的函数调用情况
由于GetUrlKeyValue函数的覆盖是在 “保存新建 ”按钮事件里面,所以 当我进入页面后 直接点击 “保存” 按钮 页面跳转到AllItems.aspx,直接点击“保存新建” 按钮跳转到NewForm.aspx页面,但是 如果 点击“保存新建” 按钮时, 客服端 有error的时候,当我们修改数据后 点击“保存” 按钮时,这个时候就有问题(页面跳转到NewForm.aspx页面而不是AllItems.aspx),找了很久也没找到客服端真正验证的地方(如果大家知道的还请指教,反正不是后面这句代码 if (!PreSaveItem()) return false;if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false),最后无赖只好通过setInterval方法来检查页面是否有error信息,如果有 我们就把GetUrlKeyValue方法还原。
最后的代码如下:
<script type="text/javascript" src="/siteassets/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var btnsave = $("input[id*='diidIOSaveItem']")[];
var tableSave = $(btnsave).parents(".ms-toolbar").eq();
var strsaveAndNew = ' <td class="ms-toolbar" nowrap="nowrap"><input type="button" value="SaveAndNew" id="btnsaveAndNew" /></td><td class="ms-separator"> </td>';
$(strsaveAndNew).insertBefore(tableSave); window.savefun = GetUrlKeyValue;
$("#btnsaveAndNew").click(function () {
window.btnsaveAndNew = true; window.GetUrlKeyValue = function (keyName, bNoDecode, url, bCaseInsensitive) {
if (keyName != "Source") {
return window.savefun(keyName, bNoDecode, url, bCaseInsensitive);
}
else {
return "/Lists/CustList/NewForm.aspx";
}
} $(btnsave).click();
window.btnsaveAndNew = false;
}); });
setInterval(function () {
var errors = $("span[id^='Error_']");
if (errors.length > && !window.btnsaveAndNew) {
window.GetUrlKeyValue = window.savefun;
}
}, );
</script>
有不对的地方 还请大家拍砖
Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮的更多相关文章
- Sharepoint2013 列表的NewForm 页面加入一个 保存新建 button
昨天一同事问我怎样在sharepoint2013的NewForm.aspx页面上加入一个 save and new的button.实现save 和new的功能.save的功能和默认的save按钮效果一 ...
- jsp页面添加一个集合数组到action(用序列化提交)
页面的js //点击a标签增加删除 var i=0; $("#a").on("click",function(){ var $newtr = $("& ...
- magento产品成功添加到购物车后跳转到不同页面 添加 add to cart 按钮
1 添加产品到购物车成功后是跳转到购物车页面或不跳转.这个在后台可以设置 system -> configuration -> After Adding a Product Redirec ...
- 在html页面添加一个隐藏域,并渲染一个需要保存的数值,在js中需要再获取,而不影响页面结构
<div style="display:none">可以将需要保存的数值放在文本内容中,也可以放在标签的属性当中, 如果放在文本内容中,注意换行后 \n 的存在< ...
- angular js 页面添加数据保存数据库
一.编写实体类Controller层返回数据使用 package entity; import java.io.Serializable; public class Result implements ...
- Bootstrap方法为页面添加一个弹出框
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 【Telerik】实现列表单元格中添加复选框,进行状态(是、否)判断
前台界面: 需求:实现对每条细则是否必备进行判断,必备就勾选,否则不勾选. 首先:要保证列表GridView是可编辑的(IsReadOnly=false) 表格代码 其次:单元格的数据绑定要保证是双向 ...
- sharepoint 2010 页面添加footer方法 custom footer for sharepoint 2010 master page
转:http://blog.csdn.net/chenxinxian/article/details/8720893 在sharepoint 2010的页面中,我们发现,没有页尾,如果我们需要给页面添 ...
- 在Magento System Configuration页面添加配置项
以 Jp_Coupon 模块为例: 目标: 在 System configuration 页面添加一个 JP tab, 在JP中添加 Coupon section, 然后给 Coupon sectio ...
随机推荐
- 解决:虚拟机能ping通主机,主机ping不通虚拟机
问题:虚拟机能ping通主机,主机ping不通虚拟机 解决方法: 1. 使用桥接. 2. 关闭防火墙.
- android 获取sd卡根目录
dir:/storage/emulated/0 也就是 sdcard目录 ====== android 获取sd卡根目录 public String getSDPath(){ File ...
- [BZOJ4129]Haruna’s Breakfast(树上带修改莫队)
BZOJ3585,BZOJ2120,BZOJ3757三合一. 对于树上路径问题,树链剖分难以处理的时候,就用树上带修改莫队. 这里的MEX问题,使用BZOJ3585的分块方法,平衡了时间复杂度. 剩下 ...
- [java] 虚拟机(JVM)底层结构详解[转]
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领域中大部分的知识点,从最基础的java最基本语法到 ...
- Codeforces Round #370 (Div. 2) D. Memory and Scores 动态规划
D. Memory and Scores 题目连接: http://codeforces.com/contest/712/problem/D Description Memory and his fr ...
- Beyond Compare 4提示已经过了30天试用期,破解方式,亲测可用
修改注册表 1)在搜索栏中输入 regedit ,打开注册表 2) 删除项目:计算机\HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compar ...
- windows下用nginx配置https服务器
1.安装nginx 先到nginx官网下在nginx http://nginx.org/en/download.html 将下载好的文件解压出来修改文件名为 nginx ,然后拷贝到C盘下,目录如下: ...
- linearLayout 和 relativeLayout的属性区别(转)
LinearLayout和RelativeLayout 共有属性:java代码中通过btn1关联次控件android:id="@+id/btn1" 控件宽度android:layo ...
- Fiddler可以支持Websocket抓包了
今天试了一下,Fiddler已经可以支持客户端Websocket抓包了,并且查看的方式也非常方便. websocket作为一个标准的应用层的协议,在CS端程序用起来也比传统的tcp协议方便了,比较常见 ...
- 【Go命令教程】6. go doc 与 godoc
go doc 命令可以打印附于Go语言程序 实体 上的文档.我们可以通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的. 插播:所谓 Go语言的 程序实体,是指变量.常量.函数.结构体以及接 ...