关闭

Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮

2885人阅读 评论(2) 收藏 举报
分类:

昨天一同事问我如何在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']")[1];
            var tableSave = $(btnsave).parents(".ms-toolbar").eq(0);
            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 > 0 && !window.btnsaveAndNew) {
                window.GetUrlKeyValue = window.savefun;
            }
        }, 100);
    </script>


有不对的地方 还请大家拍砖

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

sharepoint 轻量化开发之自定义列表!

1.    我们以站点管理员登陆网站,我们就可以开始创建各类基于MOSS的应用: 2.    接下来我们可以创建各类相关的列表,我们点击添加应...
  • fogyisland2000
  • fogyisland2000
  • 2016-04-11 17:15
  • 3930

iOS常见创建页面的方式

iOS有好几种创建页面的方式:最先接触的是完成通过storyboard创建,很简单,但缺点也比较明显,它不能随心所欲的画出想要的效果;然后在学习别人的代码时,发现iOS老手们都是靠纯代码创建页面的,代...
  • a411358606
  • a411358606
  • 2015-12-07 15:19
  • 1063

div点击按钮增加一行

function addLine(addBut){ var divElements =document.getElementsByName("delete"); if(divElements...
  • zziamalei
  • zziamalei
  • 2014-04-14 22:32
  • 984

sharepoint2013列表实现项目级权限控制

在sharepoint2013权限控制中,有时候会
  • zhuifeng1024
  • zhuifeng1024
  • 2014-07-07 22:30
  • 980

单文档添加按钮

1)在窗户的客户区内添加按钮及其响应函数 第一步:添加一个按钮         首先在**View.h中定义一个按钮标识       &#...
  • yunxianpiaoyu
  • yunxianpiaoyu
  • 2015-11-19 17:56
  • 673

创建一个如下的窗体,并在窗体上放置saveFileDialog、openFileDialog两个控件。

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...
  • u012369175
  • u012369175
  • 2014-11-06 15:11
  • 1244

在jsp页面中加入下拉列表

新增收货地址管理 $(function (){ initComplexAre
  • zhengsaisai
  • zhengsaisai
  • 2016-08-04 14:56
  • 363

Dynamics CRM2016 基于选择的视图项来显示和隐藏home上的ribbon按钮

要实现本功能,借助的是ribbon按钮中Enable Rule中的Custom Rule绑定JS Function.   首先我们在按钮的command中添加一个enable rule,如下图,前面四...
  • woniu1104913
  • woniu1104913
  • 2017-08-02 14:39
  • 1254

重写QTabWidget,在标签后面添加图标按钮

原本的QTabWidget没有支持在标签后面添加自定义的按钮的方法。想在后面添加自定义的功能按钮需要重写QTabWidget类,自己实现按钮图标的重绘和鼠标点击判断等操作。 1、使用到的主要事件函数...
  • imxiangzi
  • imxiangzi
  • 2016-09-13 17:25
  • 896

创建列表(List)

创建Lists SharePoint提供了许多开箱即用的APP(在之前的版本叫List)。按照部门的需求,需要创建以下几种List: l  通知 l  讨论 l  问题追踪 l  文档库 ...
  • SPFarm
  • SPFarm
  • 2014-10-03 23:36
  • 1086
    个人资料
    • 访问:4058823次
    • 积分:44368
    • 等级:
    • 排名:第89名
    • 原创:420篇
    • 转载:612篇
    • 译文:1篇
    • 评论:218条
    最新评论