2012-04-10 162 views
0

试图显示一个新页面,当用户点击一个按钮时在新窗口中。 试图用至今,但没有运气来测试它:asp.net按钮上的新页面点击

Label1.Text = "<form><input type=button name=print value='Print View' onClick='javascript:window.open('http://mylink','mywindow')'></form>"; 

我想可能是格式问题,但就是无法看到它。 例如,这工作得很好:

<input type=button name=close value='Close' onClick='javascript:parent.jQuery.fancybox.close()'> 
+0

技术性,但你应该使用的,而不是一个标签文字 – Pleun 2012-04-10 18:51:30

回答

2

你应该使用:

Label1.Text = @"<form><input type=""button"" name=""print"" value=""Print View"" onClick=""javascript:window.open('http://mylink','mywindow')""></form>"; 

如果你想包括一个变量,你可以使用:

string url = "http://www.google.com"; 
    Label1.Text = String.Format(@"<form><input type=""button"" name=""print"" value=""Print View"" onClick=""javascript:window.open('{0}','mywindow')""></form>", url); 

然而,请确保url的内容是安全的,只要它来自任何用户提供的输入!否则,你可能会开放自己的脚本注入攻击。

+0

你不认为问题是,OP被设置**标签的值**到原始HTML?标签控件是否不能转义字符? – 2012-04-10 18:43:36

+0

@KirkWoll - 我不相信*标签控制转义默认情况下。该文档有一个安全警告和他们的示例代码使用HtmlEncode - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.label.aspx – 2012-04-10 18:48:11

+0

猜你是对的。检查它没有表现出来的代码。 – 2012-04-10 18:49:51

3

请尝试:

Label1.Text = "<form><input type=button name=print value='Print View' onClick='javascript:window.open(\"http://mylink\",\"mywindow\")'></form>"; 
+0

做到了。谢谢 :) – 2012-04-10 18:49:14