模式对话框showModalDialog

1、打开的页面:

var url= "SplitFrame.aspx?listOid=" + listOid + "&ts="+Math.random(1000);

//rs回值可以判断的,也可以不要。
var rs=window.showModalDialog(url,"splitPage","dialogWidth:900px;dialogHeight:450px;status:no;help:no");   

弹出窗口里用下面这个方法可以返回值。

window.returnValue=

//刷新当前页面
window.location.reload();

2、SplitFrame.aspx页

<frameset rows="800" cols="*" frameborder="no" border="0" framespacing="0">
    <frame name="Top" id="Top" scrolling="no"  src="Split.aspx?listOid=<%=Request.QueryString.Get("listOid").ToString()%>&ts="+Math.random(1000) scrolling="auto" frameborder="NO" border="0" framespacing="0">
 </frameset>

3、Split.aspx

这个页面有增加功能,新增数据后又用frame用另一个action的页面做了数据处理。处理完调用这个页面的 ReloadPage()显示出新增的数据。

在<head>标签下面加:

<base target="_self" />

function ReloadPage()
    {
        window.location.href="Split.aspx?listOid=<%=listOid %>&ts="+Math.random(1000);
    }

4.注意点:单引号处理

如果在gvMain_ItemDataBound事件里给按钮增加事件且将当前的数值传给父窗体时要处理单引号如下:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            string key = gvMain.DataKeys[e.Item.ItemIndex].ToString();
            DataTable dt = BizPassCustomsImgExg.GetBaseImgExg(key);
            if (dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
                 string returnvalue = dr["G_NO"] + "囧" + dr["CODE_T"] + "囧" + dr["G_NAME"];           
                e.Item.Attributes.Add("ondblclick", "window.parent.returnValue='" + returnvalue.Replace("'", "\\'") + "';window.close()");
                e.Item.Attributes.Add("onmouseover", "this.style.cursor='pointer'");
            }
        }

原文地址:https://www.cnblogs.com/xbding/p/2826153.html