1

javascript の window.showModalDialog から Web ページ (Clock.aspx) を開いています。Clock.aspx にはボタンがあり、ユーザーがそのボタンをクリックすると、Clock.aspx ページが閉じられるようにしたいと考えています。サーバー側のデータベース挿入が進行中で、挿入後にこのページを閉じたいので、javascript の onClientClick() メソッドを使用したくありません。

ボタンの背後にあるコードは次のとおりです。

protected void btnStop_Click(object sender, EventArgs e)
    {
        _nonProduction = new NonProduction();
        if (Session["LastNonProdTimeID"] == null)
        {
        }
        else
        {
            int NonProdTimeEntryID = Convert.ToInt32(Session["LastNonProdTimeID"]);
            //Updating the TimeSpent
            isTimeSpentUpdated = _nonProduction.UpdateTimeSpentInDB(NonProdTimeEntryID);
            if (isTimeSpentUpdated == true)
            {

                string timespent = Convert.ToString(_nonProduction.GetTimeSpent(NonProdTimeEntryID));
                string msg = "Total time consumed  in " +HiddenTaskname.Value.ToString()+": " + timespent.ToString() + " Minutes";
                ClientScript.RegisterStartupScript(typeof(Page), "closePage", "<script type='text/JavaScript'>window.close();</script>");

                //ShowPopUpMsg(msg);
            }
            else
            {
            }
        }



    }

ここで、ボタンをもう1つクリックすると(Clock.aspx)ポップアップが表示され、ウィンドウが閉じません。サーバー側のコードから ShowModalDialog を閉じる方法を教えてください。私のページでもスクリプトマネージャーを使用しています。前もって感謝します。

4

3 に答える 3

1

<base target="_self">clock.aspx ページの head セクションに追加したところ、問題なく動作しました。

于 2012-07-11T05:24:39.803 に答える
0

以下のコードを使用すると、IE で動作するはずです

Response.Write("<script language='javascript'> { self.close() }</script>");
于 2012-07-10T14:52:33.397 に答える
0

私の場合、aspx のページを閉じる通常の JavaScript の関数があります。

コード ビハインドでは、更新が成功すると、その関数が呼び出されます。

// this function is to be called by the popup windows to refresh the opener using specific office code, and close self
function allDoneOffice(office)
{
    var opener = self.opener;
    if (opener.doRefresh) opener.doRefreshWithOfficeCode(office);
    window.open('','_self','');  // IE warning hack
    self.close();
}


        // update the record
    bool b = report.SaveModifiedToDB();
    if (b)
    {
        // don't close the page if nothing was updated
        ClientScript.RegisterStartupScript(this.GetType(), "load", "<script type=\"text/javascript\">\n" +
        "allDoneOffice('" + report.OfficeCode + "');" + "<" + "/script>");
    }
    else
    {
        lblResults.Text += " Unable to save modified report to the database.";
    }
于 2012-07-10T14:34:10.653 に答える