【问题标题】:unable to call Javascript after asp.net submit button click event handler is completedasp.net 提交按钮单击事件处理程序完成后无法调用 Javascript
【发布时间】:2014-10-25 18:36:49
【问题描述】:

我有一个 SharePoint 应用程序页面,其中更新面板中有一个表单。我有一个提交表单的提交按钮。这也仅在更新面板内。提交表单时,我正在显示 sharepoint 的 处理它 对话框。我想在我的代码中完成提交按钮甚至处理程序后关闭它。我尝试了很多方法,但似乎没有任何效果。

这是我的代码

QuerySubmission.aspx

 <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SummarizeQuery.aspx.cs" Inherits="SummarizeQuery"%>

<SharePoint:CssRegistration runat="server" name="default" />
<SharePoint:CssLink runat="server"/>

<html>
    <head>
        <link rel="stylesheet" href="~/_layouts/15/defaultcss.ashx" /> 
        <script src="Scripts/jquery-1.9.1.min.js"></script>  
        <link href="Styles/Hon.Intuition.CN.css" rel="stylesheet" /> 
        <title> submit</title>
    </head>
    <body>          
        <form runat="server">
            <asp:ScriptManager runat="server" ID="ReqScriptManager" EnablePartialRendering="true" ></asp:ScriptManager>
            <div class="SummarizationParent">
                <script type="text/javascript">
                    $(document).ready(function () {
                        panelsLoaded = 1;
                        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(removeWaitScreen);
                    }); 

                    function removeWaitScreen() {
                        alert('Dines closingh');
                        if (window.parent.waitDialog != null) {
                            window.parent.waitDialog.close();
                        }
                    }

                            </script>
                <div runat="server" id="divErrorMessages" ></div>
                <div>                           
                    <asp:UpdatePanel ID="upSummary" runat="server" UpdateMode="Always">
                        <ContentTemplate>
                            <script type="text/javascript">
                                /* adding this to maintain the context during the ajax postbacks  */
                                Sys.Application.add_load(OnPageLoad);


                                function showWaitScreen() {
                                    window.parent.eval("window.waitDialog = SP.UI.ModalDialog.showWaitScreenWithNoClose('Please Wait', 'Please wait as this may take a few minutes...', 125, 450);");
                                }

                            </script> 
                            <asp:Panel ID="pnlSummary" CssClass="SummaryPanel" runat="server">                                
                                <div class="CN-DialogScroll">   
                                    <div>
                                        <table style="padding:5px;width:95%;">
                                            <colgroup>
                                                <col width="35%" />
                                                <col width="60%" />
                                            </colgroup>
                                            <tr>
                                                <td colspan="2"><asp:Label runat="server" CssClass="ms-accentText ms-textXLarge" ID="lblREIMSMetadata"></asp:Label></td>
                                            </tr>                       
                                            <tr >
                                                <td colspan="2" style="padding:3px"></td>
                                            </tr> 
                                            <tr>
                                                <td style="vertical-align: top;"> 
                                                    <asp:Label CssClass="ms-standardheader ms-textXSmall" Text="Shift" runat="server"/>                                 
                                                </td> 
                                                <td style="padding:3px">
                                                    <span dir="auto">
                                                        <asp:DropDownList ID="drpShifts" runat="server"/>
                                                    </span>
                                                </td>
                                            </tr>                      
                                            <tr >
                                                <td colspan="2" style="padding:3px"></td>
                                            </tr>   
                                            <tr>
                                                <td style="vertical-align: top;"> 
                                                    <asp:Label CssClass="ms-standardheader ms-textXSmall" Text="Porblem Start Date" runat="server"/>                                 
                                                </td> 
                                                <td style="padding:3px">
                                                    <span dir="auto">
                                                        <SharePoint:DateTimeControl IsRequiredField="true" runat="server" ID="dtProblemStartDate" /> 
                                                    </span>
                                                </td>
                                            </tr>                    
                                            <tr >
                                                <td colspan="2" style="padding:3px"></td>
                                            </tr>   
                                            <tr>
                                                <td style="vertical-align: top;"> 
                                                    <asp:Label CssClass="ms-standardheader ms-textXSmall" Text="Problem Keywords" runat="server"/>                                 
                                                </td> 
                                                <td style="padding:3px">
                                                    <span dir="auto">
                                                        <asp:TextBox MaxLength="48" ID="taKeywords" Width="100%" runat="server"/>
                                                    </span>
                                                </td>
                                            </tr>                    
                                            <tr >
                                                <td colspan="2" style="padding:3px"></td>
                                            </tr>   
                                            <tr>
                                                <td style="vertical-align: top;"> 
                                                    <asp:Label CssClass="ms-standardheader ms-textXSmall" Text="Resolution Type" runat="server"/>                                 
                                                </td> 
                                                <td style="padding:3px">
                                                    <span dir="auto">
                                                        <asp:DropDownList ID="drpResolutionType" runat="server"/>
                                                    </span>
                                                </td>
                                            </tr>                    
                                            <tr >
                                                <td colspan="2" style="padding:3px"></td>
                                            </tr>  
                                             <tr> 
                                                <td style="padding:3px" colspan="2">
                                                    <span dir="auto"> 
                                                        <asp:Button ID="btnSubmit" runat="server" Text="Submit" 
                                                            OnClientClick="return showWaitScreen();" 
                                                            OnClick="btnSubmit_Click"/> 
                                                        <asp:Label ID="lblStatus" runat="server" Text=" "></asp:Label> 
                                                    </span>
                                                </td>
                                            </t  
                                        </table>
                                    </div>                               
                                </div>
                            </asp:Panel>
                        </ContentTemplate>
                    </asp:UpdatePanel> 
                </div>
            </div>
        </form>
    </body>
</html>

在我后面的代码中,我有以下事件处理程序代码

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
//some processing code

this.ClientScript.RegisterStartupScript(this.GetType(), "CloseWaitDialog", "removeWaitScreen();", true);

    }

在我的提交按钮功能完成后,有什么方法可以调用我的 javascript 函数 removeWaitScreen?

【问题讨论】:

    标签: javascript asp.net c#-4.0 sharepoint updatepanel


    【解决方案1】:

    您可以使用以下功能。

    function pageLoad(sender, args) { 
       removeWaitScreen();
    }
    

    上述函数会为每个更新面板 postback 触发。所以当按钮被点击时,updatepanel 会做 postback ,然后pageLoad 会被调用,waitscreen 会被移除。

    请参阅此 URL 以获取 ajax updatepanel 事件列表 - http://msdn.microsoft.com/en-us/library/bb386417.aspx

    还要注意 - document-ready-and-pageload-are-not-the-same

    当您尝试使用ClientScript.RegisterStartupScript 时,它与要求使用execute JS as soon as page loads 相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2017-04-17
      • 2023-03-31
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多