在AspNet中使用javascript的showModalDialog函数
应用1.父窗口点击按钮弹出模式窗体,传递某个控件到弹出窗口,弹出窗口对该控件进行操作,并设置返回值;
若返回正确的值则执行该按钮的服务端事件,否则不执行该按钮的服务端事件。
示例1.
Page_Load事件的代码片段
//弹出修改原因录入框
StringBuilder bdrModifyClick = new StringBuilder();
bdrModifyClick.AppendFormat("var hidReason=document.getElementById(\"{0}\");", hidModifyReason.ClientID);
bdrModifyClick.AppendFormat("var bMakeSure=window.showModalDialog(\"PopModifyReason.aspx?SampleId={0}&SampleCate={1}&SampleGroup=化学\",hidReason,\"help:no;resizable:no;scroll:no;status:0;dialogWidth:500px;dialogHeight:190px;center:yes;\");", Request["SampleId"], txtSampleCate.Text.Trim());
bdrModifyClick.Append("return (bMakeSure==true);");
btChemInputModify.OnClientClick = bdrModifyClick.ToString();
StringBuilder bdrModifyClick = new StringBuilder();
bdrModifyClick.AppendFormat("var hidReason=document.getElementById(\"{0}\");", hidModifyReason.ClientID);
bdrModifyClick.AppendFormat("var bMakeSure=window.showModalDialog(\"PopModifyReason.aspx?SampleId={0}&SampleCate={1}&SampleGroup=化学\",hidReason,\"help:no;resizable:no;scroll:no;status:0;dialogWidth:500px;dialogHeight:190px;center:yes;\");", Request["SampleId"], txtSampleCate.Text.Trim());
bdrModifyClick.Append("return (bMakeSure==true);");
btChemInputModify.OnClientClick = bdrModifyClick.ToString();
弹出窗口确认按钮的服务端Click事件
StringBuilder strBdSureClick = new StringBuilder();
strBdSureClick.Append("<script type=\"text/javascript\" language=\"javascript\">");
strBdSureClick.Append("var hidReason=window.dialogArguments;");
//strBdSureClick.AppendFormat("var ddlReason=document.getElementById(\"{0}\");",ddlReason.ClientID);
//strBdSureClick.Append("hidReason.value = ddlReason.options[ddlReason.selectedIndex].value;");
strBdSureClick.AppendFormat("hidReason.value=\"{0}\";", ddlReason.SelectedItem.Value);
strBdSureClick.Append("window.returnValue = true;");
strBdSureClick.Append("window.close();");
strBdSureClick.Append("</script>");
Response.Write(strBdSureClick.ToString());
strBdSureClick.Append("<script type=\"text/javascript\" language=\"javascript\">");
strBdSureClick.Append("var hidReason=window.dialogArguments;");
//strBdSureClick.AppendFormat("var ddlReason=document.getElementById(\"{0}\");",ddlReason.ClientID);
//strBdSureClick.Append("hidReason.value = ddlReason.options[ddlReason.selectedIndex].value;");
strBdSureClick.AppendFormat("hidReason.value=\"{0}\";", ddlReason.SelectedItem.Value);
strBdSureClick.Append("window.returnValue = true;");
strBdSureClick.Append("window.close();");
strBdSureClick.Append("</script>");
Response.Write(strBdSureClick.ToString());
注意,需要在模式窗体的<head></head>部分加入如下代码:
<base target="_self"/>
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
或在模式窗体的Page_Load事件中加入如下代码:
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.Cache.SetNoStore();
示例2:
应用2:
示例1:
posted on 2012-05-15 14:03 LeeXiaoLiang 阅读(174) 评论(0) 收藏 举报

浙公网安备 33010602011771号