在asp.net中用response.write方法输出Javascript弹出模态对话框,怎么解决父窗口空白的问题!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在asp.net中用response.write方法输出Javascript弹出模态对话框,怎么解决父窗口空白的问题!相关的知识,希望对你有一定的参考价值。
我用Menu控件做一个菜单条,当点击某个菜单时想弹出一个模态窗口!我的做法是在菜单点击的消息响应方法当中用写了这么一条代码:Response.Write("<script type='text/javascript'>window.showModalDialog('ModeDialog.aspx','','dialogWidth=300px;dialogHeight=400px;resizable:yes');</script>");
可是在运行的时候,虽然对模态话框弹出来了,但是父窗口当中的所有内容都变在空白了。而只有在当关闭弹出的对话框时,父窗口当中的内容才会显示出来!而我想要的是,在弹出模态对话框的同时,父窗口当中的内容也存在!
请问各位高手帮帮忙!谢谢!
Response.Write("<script type='text/javascript'>window.showModalDialog('ModeDialog.aspx','','dialogWidth=300px;dialogHeight=400px;resizable:yes');</script>");
因为Response.Write输出来的会破坏页面,如果你要是想实现那个效果用这个:
this.Page.ClientScript.RegisterStartupScript("typeof(string)","","脚本",true);追问
谢谢你,老兄!但是我试过了,为什么不起作用呢???我依照你的建议,最后改为:
Page.ClientScript.RegisterStartupScript(typeof(string),"","" +
"window.showModalDialog('ModeDialog.aspx','','dialogWidth=300px;dialogHeight=400px;resizable:yes');" +
"",true);
但是在运行它就在本页面当中显示了几个“/】】”!
你写错了啊!
Page.ClientScript.RegisterStartupScript(typeof(string),"","这里面直接写js",true);
比如说:
Page.ClientScript.RegisterStartupScript(typeof(string),"","alert('111111');",true);
哦,谢谢!果然起作用。但是在之前,我设置了菜单控件水平方式排列的。但是在对话框弹出的时候,它又成垂直排列的了,当关闭了对话框之后,它又成水平排列了!这是为什么呀??高手??
还有,如果用navigateURL方法来实现,为什么当第一交点击时,不会弹出,一直要到第二次点击,对话框才会弹出呢???
我觉得啊,这个就是服务器端控件和客户端控件的区别吧,还有这种弹出窗口的方法也不好,在企业中大部分用的都是客户端的控件,服务器端的控件用的过多的话,在页面的源代码上会有很多的垃圾代码,而且不干净,你说的这种情况是属于正常的现象。
还有你说用了navigateURL这种方法,点一次不行,必须点第二次才能弹出,这个问题,你能把你的那个绑定URL的方法给我看一下吗?
谢谢了,我已经解决了!
参考技术A 试试ScriptManager.RegisterStartupScript如果不行,就只能用ajax了追问
对不起,师兄!你可以说得再清楚些吗??怎么用???
追答ScriptManager.RegisterStartupScript(界面上随便一个服务器控件就成, this.GetType(), "showd", "window.showModalDialog('ModeDialog.aspx','','dialogWidth=300px;dialogHeight=400px;resizable:yes');", true);
以上是关于在asp.net中用response.write方法输出Javascript弹出模态对话框,怎么解决父窗口空白的问题!的主要内容,如果未能解决你的问题,请参考以下文章
Asp.Net Core 2 中是不是有等效于“HttpContext.Response.Write”的内容?
Asp.Net 遍历 循环 显示所有COOKIS,SESSION,Applocation
Page.ClientScript和Response.Write的用法(c#)