2009-11-19 54 views
1

LinkBut​​tons給我頭痛。我愚蠢地想,他們允許你創建程序化的鏈接。很顯然,這並非如此(按設計),因爲它們與正常鏈接沒有任何關係 - 當您將鼠標懸停在它們上面時,您無法看到您的地址,無法在新標籤中打開它們等。LinkBut​​ton替代? (需要它像一個正常的鏈接功能)

在.NET中是否有其他替代方案,它實際上可以讓您以編程方式創建一個true HTML鏈接?在選項卡中打開多個項目的能力是一種需求。我已經研究過一個按鈕看起來像一個鏈接樣式,但它仍然像一個按鈕,所以這也不會工作。有任何想法嗎?

編輯:對不起,忘記了:無法使用HyperLink,因爲我需要發送CommandArguments,設置OnClick事件等的功能。它需要仍然是一個按鈕。

+0

LinkBut​​ton的功能像一個按鈕,但看起來像一個超鏈接 – David 2009-11-19 16:06:09

+0

所以,爲了澄清,你仍然希望回發發生,但然後爲響應打開一個新的窗口?所以根本不像一個正常的鏈接? – 2009-11-19 16:11:08

回答

3

HyperLink控制。

設置使用NavigateUrl財產tagets在href和(新視窗/標籤)可以使用Target財產


編輯迴應質疑編輯

我設置不知道你在做什麼 - 你的問題是要求一個「功能像普通鏈接」的控件,以便點擊它可以打開一個新的窗口/標籤,但是你的編輯表示你想要提交CommandArguments和使用OnClick事件 - 所以不是正常的鏈接。

您遇到的問題是命令參數和OnClick事件的PostBack處理髮生在服務器上,但「在新窗口中打開」發生在客戶端上(使用錨的「target」屬性標記,或可能與JavaScript) - 這兩個並沒有真正混合好。

幾個選項春天的腦海:

  1. 使用LinkButton,如果你處理回傳,輸出一些JavaScript在新窗口中打開新的一頁。
  2. 使用HyperLink控件與target並將「CommandArguments」設置爲查詢字符串元素添加到鏈接 - 然後您可以在新選項卡中打開的捕獲頁面上對其進行處理。

您也可以導致JavaScript使用屬性集合火的onClick:

// Create a hyperlink 
HyperLink link = new HyperLink(); 
link.NavigateUrl = "/somepage.aspx?arg=First"; 
link.Target = "_blank"; // Open in a new window 

// Add a client side onClick event calling someMethod function with a reference 
// to the link, and making sure the link processing stops. 
link.Attributes.Add("onClick", "someMethod(this);return false"); 
1

你的意思是HyperLink?您可以隨時使用a tag in HTML

編輯:當您將鼠標懸停在鏈接上時,瀏覽器顯示目標。當您將鼠標懸停在LinkBut​​ton上時,瀏覽器會顯示將執行功能服務器端的JavaScript調用。我會說你能做的最好的是在工具提示中顯示目標頁面,因爲我認爲在瀏覽器中顯示它是相當困難的。

+0

添加了原本應該在那裏的說明 - 需要使用OnClick方法發送CommandArguments的功能。 – markislu 2009-11-19 16:10:48

1

如果您使用LinkBut​​ton,您將能夠在代碼背後設置命令參數和onclick方法。通過這樣做,您將不再能夠在您發現的新窗口中打開鏈接。

無法在新窗口中打開LinkBut​​ton的原因之一是因爲它正在回發到同一頁面。

我想你必須使用HyperLink控件並將命令參數作爲查詢字符串參數傳遞,或者使用LinkBut​​ton控件並在新選項卡功能中鬆開打開。

如果您將參數作爲查詢字符串參數傳遞,則可以在頁面加載中檢查該參數,並仍然調用您要用於LinkBut​​ton的onclick函數。

希望這是明確的,它可以幫助你。