我从javascript的window.showModalDialog打开一个网页(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
{
}
}
}
这时当我点击按钮时,会弹出另一个(Clock.aspx)弹出窗口并且窗口没有关闭。请帮助我如何从服务器端代码关闭ShowModalDialog。我也在我的页面中使用脚本管理器。 提前致谢。
答案 0 :(得分:1)
我已将<base target="_self">
添加到clock.aspx页面的head部分,然后它适用于我。
答案 1 :(得分:0)
对于我的,我在普通的javascript中有一个函数可以关闭aspx中的页面。
在后面的代码中,如果更新成功,则会调用该函数。
// 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.";
}
答案 2 :(得分:0)
使用以下代码可以在IE中使用
Response.Write("<script language='javascript'> { self.close() }</script>");