在我们的实际开发中,经常会用到showModalDialog 模态窗体,对于其中的问题有时候真是让人头痛,在此我写一点自己在开发中遇到的问题以及解决办法。
一、刷新问题
第一种情况是:模态窗体的父窗体不刷新问题,就是在关闭模态窗口后,父窗体不刷新。
解决方法:在你的弹出模态窗体的JavaScript后面写上window.location.reload();
第二种情况是:有时候不想让父窗体刷新,也就是在关闭模态窗口后,让父窗体不刷新
解决方法:在你的弹出模态窗体的JavaScript后面写上return false;
二、关闭问题
关闭方法:使用JavaScript
window.opener=null;self.close();
三、传递对象
1
protected
void
btnOK_Click(
object
sender, EventArgs e)
2 {
3 System.Text.StringBuilder sb = new System.Text.StringBuilder();
4 sb.Append( " <script language=\ " javascript\ " > " );
5 string strReturnText = string .Empty;
6 string strReturnValue = string .Empty;
7 if (Request.Form[ " rbtnSelect " ] != null )
8 {
9 strReturnText = Request.Form[ " rbtnSelect " ].ToString();
10 strReturnValue = Request.Form[ " rbtnSelect " ].ToString();
11 // Response.Write(strReturnText);
12 }
13 if (rdo_NewLocation.Checked == true )
14 {
15 // strReturnText = Request.Form["rbtnSelect"].ToString();
16 // strReturnValue = Request.Form["rbtnSelect"].ToString();
17
18 sb.Append( " var ret = new Object(); " );
19 sb.Append( " ret.txt_BuildingName = ' " + txt_BuildingName.Text + " '; " );
20 sb.Append( " ret.txt_Unit = ' " + txt_Unit.Text + " '; " );
21 sb.Append( " ret.txt_Floor = ' " + txt_Floor.Text + " '; " );
22 sb.Append( " ret.txt_StreetNo = ' " + txt_StreetNo.Text + " '; " );
23 sb.Append( " ret.txt_Street = ' " + txt_Street.Text + " '; " );
24 sb.Append( " ret.txt_District = ' " + txt_District.Text + " '; " );
25 sb.Append( " ret.txt_City = ' " + txt_City.Text + " '; " );
26 sb.Append( " ret.txt_Country = ' " + txt_Country.Text + " '; " );
27
28 }
29
30 // sb.Append("window.returnValue='" + strReturnText + "|" + strReturnValue + "';");
31 sb.Append( " window.returnValue=ret; " );
32 sb.Append( " window.close(); " );
33 sb.Append( " </script> " );
34 Response.Write(sb.ToString());
35 }
2 {
3 System.Text.StringBuilder sb = new System.Text.StringBuilder();
4 sb.Append( " <script language=\ " javascript\ " > " );
5 string strReturnText = string .Empty;
6 string strReturnValue = string .Empty;
7 if (Request.Form[ " rbtnSelect " ] != null )
8 {
9 strReturnText = Request.Form[ " rbtnSelect " ].ToString();
10 strReturnValue = Request.Form[ " rbtnSelect " ].ToString();
11 // Response.Write(strReturnText);
12 }
13 if (rdo_NewLocation.Checked == true )
14 {
15 // strReturnText = Request.Form["rbtnSelect"].ToString();
16 // strReturnValue = Request.Form["rbtnSelect"].ToString();
17
18 sb.Append( " var ret = new Object(); " );
19 sb.Append( " ret.txt_BuildingName = ' " + txt_BuildingName.Text + " '; " );
20 sb.Append( " ret.txt_Unit = ' " + txt_Unit.Text + " '; " );
21 sb.Append( " ret.txt_Floor = ' " + txt_Floor.Text + " '; " );
22 sb.Append( " ret.txt_StreetNo = ' " + txt_StreetNo.Text + " '; " );
23 sb.Append( " ret.txt_Street = ' " + txt_Street.Text + " '; " );
24 sb.Append( " ret.txt_District = ' " + txt_District.Text + " '; " );
25 sb.Append( " ret.txt_City = ' " + txt_City.Text + " '; " );
26 sb.Append( " ret.txt_Country = ' " + txt_Country.Text + " '; " );
27
28 }
29
30 // sb.Append("window.returnValue='" + strReturnText + "|" + strReturnValue + "';");
31 sb.Append( " window.returnValue=ret; " );
32 sb.Append( " window.close(); " );
33 sb.Append( " </script> " );
34 Response.Write(sb.ToString());
35 }
36
父页面接收
< script language = " JavaScript " type = " text/javascript " >
function RelocationSelect()
{
var ret = window.showModalDialog("../Common/RelocationSelection.aspx",'','dialogWidth:630px; dialogHeight:300px;');
if(ret != undefined)
{
document.getElementById("txt_BuildingName").value= ret.txt_BuildingName;
document.getElementById("txt_Unit").value= ret.txt_Unit;
document.getElementById("txt_Floor").value= ret.txt_Floor;
document.getElementById("txt_StreetNo").value= ret.txt_StreetNo;
document.getElementById("txt_Street").value= ret.txt_Street;
document.getElementById("txt_District").value= ret.txt_District;
document.getElementById("txt_City").value= ret.txt_City;
document.getElementById("txt_Country").value= ret.txt_Country;
}
return false;
}
</ script >
< script language = " JavaScript " type = " text/javascript " >
function RelocationSelect()
{
var ret = window.showModalDialog("../Common/RelocationSelection.aspx",'','dialogWidth:630px; dialogHeight:300px;');
if(ret != undefined)
{
document.getElementById("txt_BuildingName").value= ret.txt_BuildingName;
document.getElementById("txt_Unit").value= ret.txt_Unit;
document.getElementById("txt_Floor").value= ret.txt_Floor;
document.getElementById("txt_StreetNo").value= ret.txt_StreetNo;
document.getElementById("txt_Street").value= ret.txt_Street;
document.getElementById("txt_District").value= ret.txt_District;
document.getElementById("txt_City").value= ret.txt_City;
document.getElementById("txt_Country").value= ret.txt_Country;
}
return false;
}
</ script >