我有一个负责填充SSRS报告的功能。用户按下按钮,我出去检查是否有数据。如果没有数据,我提供NO DATA消息。如果有数据,我打电话给SSRS报告,我想在新窗口中打开。我认为使用JavaScript函数将是实现此目的的最佳方法。这是怎么做的或你会推荐什么?提前谢谢!
<script type="text/javascript">
function openWindow(url) {
document.forms[0].target = "_blank";
}
</script>
答案 0 :(得分:9)
试试这个:
System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "Script", "openWindow(url);", True)
答案 1 :(得分:5)
请考虑使用ClientScriptManager.RegisterClientScriptBlock
方法。这是一种静态方法,应该可以在你的页面上使用。
使用示例如下:
Page.ClientScript.RegisterStartupScript(Me.GetType(), "window-script", "openWindow('someUrl')", True)
当然,你可以把你准备好的任何网址放在你的代码中......
希望它有所帮助。
答案 2 :(得分:3)
请注意以下事项:当您的vb代码正在运行时,浏览器中的页面不存在。
请记住,网络通过http协议工作,http协议归结为请求和响应。始终是请求,然后是响应。通常,响应是html,这是你的vb代码进入的地方。所有代码和aspx标记的唯一目的是让你的web服务器可以将html发送回浏览器。浏览器和服务器之间没有活动连接。当您的vb代码正在运行时,浏览器中的网页实际上并不存在(您的代码正在忙于创建它)。当你的javascript正在运行时,用于在服务器上创建它的vb资源早已被回收。
答案 3 :(得分:0)
如果你试图在页面上执行javascript取决于服务器端逻辑的一些结果,你可以通过使用asp文字控件(或其他类型的asp控件)来实现这一点
示例:
<asp:Literal ID="literalJavascript" runat="server">
function openWindow() { ... }
openWindow();
</asp:Literal>
然后根据您的其他逻辑在服务器代码中显示或隐藏此文字。