模式窗口,关闭打开的新页面,刷新父页面
父页面使用AJAX,GridView放在UpdatePanel控件内:打开新页面的方法(一)双击GridView的行:
e.Row.Attributes.Add("ondblclick", "return window.showModalDialog('StockSerialNoAffirm.aspx?fchrstockreceiptid=" + stockreceiptid + "&fchrstockreceiptdetailid=" + stockreceiptdetailid + "',window,'dialogWidth=520px;dialogHeight=620px;dialogtop=30px;scroll=no;help=no;resizable=yes;statue=0;center=yes;edge=sunken');window.location.reload();");
打开新页面的方法(二)通过单子页面的Button按键打开(GridViewt行有CheckBox模板列,选中才能打开):
for (int i = 0; i < this.GridStockSaleOutAffirmDetail.Rows.Count; i++)
{
if (Convert.ToBoolean(((CheckBox)this.GridStockSaleOutAffirmDetail.Rows[i].Cells[0].FindControl("cbItem")).Checked == true))
{
string stockreceiptdetailid = ((Label)this.GridStockSaleOutAffirmDetail.Rows[i].Cells[10].FindControl("Lb_DetailId")).Text.Trim().ToString();
string stockreceiptid = ((Label)this.GridStockSaleOutAffirmDetail.Rows[i].Cells[12].FindControl("Lb_StockId")).Text.Trim().ToString();
ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "", "<script> window.showModalDialog('StockSerialNoAffirm.aspx?fchrstockreceiptid=" + stockreceiptid + "&fchrstockreceiptdetailid=" + stockreceiptdetailid + "',window,'dialogWidth=520px;dialogHeight=620px;dialogtop=30px;help=no;resizable=yes;statue=0;scroll=no;center=yes'); window.location.reload();</script>", false);
}
}
在StockSerialNoAffirm.aspx页面上有button按键,点此按键关闭此页面。代码如下:
1、如果用:
protected void cmdClose_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "", "<script language= 'javascript'>window.dialogArguments.location.replace(window.dialogArguments.location);window.close(); </script>", false);
}
或
protected void cmdClose_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "", "<script language= 'javascript'>window.dialogArguments.location.href=window.dialogArguments.location.href;window.close(); </script>", false);
}
StockSerialNoAffirm.aspx页面关闭,但是又重新打开一个普通StockSerialNoAffirm.aspx的页面是刷新后的数据,还有一个未刷新的老页面,这样就存在两个页面。
2、如果用其它方法可以关闭页页,但是不会刷新StockSerialNoAffirm.aspx页面。
请高手指点。 --------------------编程问答-------------------- window.parent.localtion.reload()不行吗? --------------------编程问答-------------------- var sReturn=window.showModalDialog("" + id,'','dialogWidth:420px;dialogHeight:570px,center=yes,status=no,resizable=no,scroll=no,dialogHide=on');;
在子页面
function reload()
{
window.close();
}
加入 <base target="_self"/>
或
window.dialogArguments.window.location = window.dialogArguments.window.location; self.close();
--------------------编程问答--------------------
不可以的,提示:window.parent.localtion为空或不是对象。 --------------------编程问答--------------------
此方法,也试过了,也是不可以的 --------------------编程问答-------------------- 自己顶一下,这个问题在网上查了很多资料都没法解决。 --------------------编程问答--------------------
---
如果在父窗口进行了操作,如搜索.这时reload会提示重新操作吗? --------------------编程问答--------------------
不可以的,在父窗口没有搜索等操作,只有一个更新出库数量的操作。
补充:.NET技术 , ASP.NET