在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

如何在asp.net中弹出可编辑的窗口

Page.ClientScript和Response.Write的用法(c#)

asp.net C# mvc2中controller的无法获取参数

请问一下,用asp.net加sql server编程,实现如图的功能,应该怎么实现?