2012-04-10 292 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