zoukankan      html  css  js  c++  java
  • Sharepoint2013 列表的NewForm 页面加入一个 保存新建 button

    昨天一同事问我怎样在sharepoint2013的NewForm.aspx页面上加入一个 save and new的button。实现save 和new的功能。save的功能和默认的save按钮效果一至。

    效果如图:

    这里的思路例如以下:

    1)用juqery来动态加入一个saveandnew的button

    2)新建button的click事件将要调用默认save button的click方法

    3)新button的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函数的覆盖是在 “保存新建 ”button事件里面,所以 当我进入页面后 直接点击 “保存” button 页面跳转到AllItems.aspx,直接点击“保存新建” button跳转到NewForm.aspx页面,可是 假设 点击“保存新建” button时。 客服端 有error的时候。当我们改动数据后 点击“保存” button时。这个时候就有问题(页面跳转到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>


    有不正确的地方 还请大家拍砖

  • 相关阅读:
    词法分析程序~总结
    0916 词法分析程序
    0909 编译原理
    1029 文法分析
    0916 编译原理第二次上机作业
    0909 编译原理第一次上机作业
    复利计算之回顾并总结这三次实验
    复利计算之说明代码运行结果和功能点
    操作系统之实验0 了解和熟悉操作系统
    12-16 实验四 递归下降语法分析程序设计
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6880391.html
Copyright © 2011-2022 走看看