2012-07-23 24 views
0

我正在使用級聯下拉列表。當選擇最後一個項目時,它會根據所有先前的選擇從.cs列表中提取信息。這很好。不過,我希望顯示的結果包含可點擊的鏈接以及其他信息。現在我正在使用document.write來打開一個帶有鏈接的新窗口。這並不理想。從JavaScript中的文本URL返回可單擊的URL

function formatHyper(hyper) { 
    var NewWindow = window.open('', 'name', 'height=660,width=650,status=1'); 
    var str = "Parts"; 

    NewWindow.document.write(str.link(hyper)); 

} 

Hyper是文字鏈接。從外部cs文件看起來像這樣被稱爲:

public class PhonePrice 
{ 
private static List<Phone> Phones = new List<Phone>{ 
    new Phone{Make="Apple",Model="iPhone 4",Carrier="ATT",Colour="black",Price=00.00f,Hyper="http://www.google.com"}, 

當我完成最後的下拉選擇它會顯示我的選擇信息,但它會開啓一個新的窗口,只是鏈接。如果我刪除了NewWindow變量,它將只加載當前頁面中的鏈接,從而使其無法看到其他任何返回的數據。

我希望它像貨幣一樣工作。但是,而不是增加了$我希望它的文本轉換成一個URL

function formatPrice(price) { 
    return "$" + price.toFixed(2); 
} 

這裏是什麼樣子時,它會打開一個新的窗口中可點擊的鏈接等。我希望可以點擊的鏈接出現在未定義的位置。

蘋果iPhone 4
運營商ATT
顏色:黑色
超:未定義
價格:$ 00.00

請幫助!

Here's a link to the full code

+0

歡迎的話,爲什麼你叫'鏈接(超)'一個字符串對象?你的'link'函數是什麼樣的? – philipvr 2012-07-23 16:57:05

+0

@philipvr謝謝!就像我說的,我是一個新手。大部分代碼是從我在網上找到的例子中複製而來的。我認爲我甚至沒有鏈接功能......「超級」是從外部.cs列表中調用的。它看起來像這樣。 公共類PhonePrice { 私人靜態列表手機=新名單 { 新電話{請= 「蘋果」,型號= 「iPhone 4」,運營商= 「ATT」,顏色爲 「黑色」,價格= 00.00 f,Hyper =「http://www.google.com」}, 這是否回答你的問題? – user1546367 2012-07-23 17:13:31

回答

0

的CascadingDropDowns.cshtml文件的第23行。更改:

<p>Hyper: ${formatHyper(Hyper)}</p> 

到:

<p>Hyper: <a id="link">${formathyper(hyper)}</a></p> 

如果只有一個鏈接,那麼這將正常工作。如果可能不止一個,那麼您需要使每個ID與超值相匹配(假設它是唯一的)。

我無法用你的代碼測試它,但它應該可以工作。而從第一個答案的功能:

<script type="text/javascript"> 
var texttheysee = 'My Link'; 
$(function formathyper(hyper) { 
    $('a#link').attr('href', hyper); 
    $('a#link').text(texttheysee); 
}); 

</script> 
+0

感謝您的回覆! var hyper被填充到一個外部的.cs文件中。主要代碼在一個CSHTML文檔中。我將如何實現這一點?我剛剛編輯了我原來的問題,並添加了一個鏈接到這些文件。無論如何,你可以看看? – user1546367 2012-07-23 19:20:30

+0

嗯..我的回答並不是您的方案的最佳答案。讓我看看代碼,然後編輯我的答案。 – dcreight 2012-07-23 19:41:45

+0

我以爲這會起作用!由於某種原因,它不是。即使在搞亂了一段時間之後。現在發生的所有事情都不是顯示「未定義」,而是不顯示任何內容......您怎麼看? – user1546367 2012-07-24 02:45:22