2017-03-17 50 views
0

我從SQL讀取器被直通文字ASP.Net文字可能在Hyperlink裏面嗎?

<asp:Literal ID="CliNox" runat="server"></asp:Literal>

檢索該文本的數據現在我需要做這裏面重定向到進一步信息的另一頁面的URL。所以,我想它使用<a href>標籤:

<a href="Contact.aspx"><asp:Literal ID="CliNox" runat="server">< /asp:Literal></a>

重定向的作品,但問題是我必須是文字的文本值傳遞到目標頁面。我怎樣才能做到這一點?是否可以在<a href>內使用OnClick標籤調用C#方法?我讀過我應該使用超鏈接標籤,但我不知道該怎麼做。

+0

的'{}'中的問題編輯符號是逸出代碼片段(特別是HTML)。請使用它,而不是爲您的代碼添加空格。 –

+1

如何在服務器中生成完整的鏈接然後發送給客戶端? (例如'Contact.aspx?key = value') –

回答

0

也許你應該嘗試,而不是使用Hyperlink

標記這個

<asp:Literal ID="CliNox" runat="server" /> 

C#

var textFromSQL = ... 
CliNox.Text = string.Format("<a href='Contact.aspx?myQueryString={0}'>{0}</a>", textFromSQL); 

要注意,如果textFromSQL包含space或其他非法字符,則需要正常化是&作爲第三參數傳遞給sting.Format,這樣的事情:

var textFromSQL = ... 
var normilizedText = textFromSQL.Replace(" ", "-"); // just for demo, you need to replace all illegal characters here 
CliNox.Text = string.Format("<a href='Contact.aspx?myQueryString={0}'>{1}</a>", normilizedText, textFromSQL); 
+0

OMG。謝謝你挽救我的生命。它的工作 – theo

+0

@theo高興地幫助,愉快的編碼:) –

0

或者,您可以考慮使用的HyperLink服務器控件,您可以在其NavigateUrl屬性指定您的網址。

ASPX標記

<asp:HyperLink runat="server" ID="HyperLink1" Text="MyLink" /> 

代碼後面(Page_Load事件)

// assuming Contact.aspx is under the root folder of your application 
// p is the query string parameter where the value from Literal.Text can be passed along and it's Url encoded as well. 
HyperLink1.NavigateUrl = string.Format("~/Contact.aspx?p={0}", Server.UrlEncode(CliNox.Text)); 
+0

沒有力量在'Page_Load'事件中編寫此代碼。 –

+0

@MehdiDehghani正如我在帖子中提到的,這只是其中一種選擇。 URL的分配可以在其他事件處理程序中完成。 – woodykiddy

相關問題