Response.Write() 造成css样式丢失的解决方案

ASP.NET中写按钮响应事件,需要新建弹窗。

原本写法是

Response.Write(“<script>window.open(‘” + dt.Rows(i).Item(“taskUrl”).ToString + “‘,’_blank’)</script>”)

运行中发现点击按钮后,页面样式表丢失。查阅资料后发现Response.Write()输出JavaScript的确会造成这样的问题,需要调整写法

ClientScript.RegisterStartupScript(Me.GetType(), “”, “<script>window.open(‘” + dt.Rows(i).Item(“taskUrl”).ToString + “‘,’_blank’)</script>”)

测试后CSS丢失的问题果然解决,不过又出现新状况,弹窗只出现了一次,原来ClientScript.RegisterStartupScript的第二个参数key如果不变的话,只会识别第一段代码,循环输出的其他脚本不会执行,略作调整

ClientScript.RegisterStartupScript(Me.GetType(), “ahfun” + i.ToString, “<script>window.open(‘” + dt.Rows(i).Item(“taskUrl”).ToString + “‘,’_blank’)</script>”)

搞定!