2

Aspx ページにアイテムのリストがあり、SP.UI.ModalDialog ポップアップを起動した各アイテムを編集するために、このポップアップ ウィンドウに送信ボタンを作成して変更を保存し、ポップアップ ウィンドウを閉じます。

protected void Submit_onclick(Object sender, EventArgs e)
{
    SPSecurity.RunWithElevatedPrivileges(delegate
    {
        try
        {
            using (SPSite mySite = new SPSite(PGContext.Site.ID))
            {
                using (SPWeb myweb = mySite.OpenWeb(PGContext.Web.ID))
                {
                    myweb.AllowUnsafeUpdates = true;
                    //changes
                    myweb.AllowUnsafeUpdates = false;

                    Page.ClientScript.RegisterStartupScript(this.GetType(), "closeWindow", "window.close()", true);}
                }
            }
            catch (Exception exp)
            {
                throw new Exception("ERROR: Unable to Save Changes : " + exp.Message.ToString(), exp);
            }
        });
}

しかし、 Page.ClientScript.RegisterStartupScript() は機能していないようです! 私は msdn でそれを見てきましたが、それは Page_Load() 関数でのみ使用できると言われているので、イベントのコードからポップアップを閉じるにはどうすればよいですか?

4

3 に答える 3

4

これを試して :

Response.Write("<script type='text/javascript'>window.frameElement.commitPopup();</script>");
Response.Flush();
Response.End();
于 2012-11-23T09:59:56.493 に答える
-1

上記のコードは正常に動作しています。それは完全に機能しています。ただし、親ページを更新するには、以下のコードを使用してポップアップを閉じ、読み込みメッセージも表示します。

using (SPLongOperation operation = new SPLongOperation(this.Page)) {

   operation.Begin();

   //DO WORK HERE

   string redirectUrl = 'http://where-to-redirect-user-after';
     operation.End(redirectUrl, SPRedirectFlags.DoNotEncodeUrl, HttpContext.Current, null);
}
于 2015-06-18T10:40:20.863 に答える