2016-07-18 61 views
1

我有從外部JSON塊讀取到後面的C​​#代碼的變量URL字符串。通過C#和ASP.Net從JSON打開網址

然後,我在需要打開新窗口並啓動這些URL的表中創建可點擊的按鈕。這些被保存在對象的字符串變量中。

但是,我找不到一種方法來在aspx端打開一個窗口並使用URL字符串。

目前我增加了屬性按鈕

Button b = new Button(); 
b.Attributes.Add("onClick", "OpenURL()"); 
bCell.Controls.Add(b); 

有了這個,我可以打開一個窗口,但我似乎無法得到我從JSON字符串反序列化的URL轉移到的OpenURL()

function OpenURL(url) {var x = window.open(url, 'mynewwin'); 

功能在前端。

由於url的變化,我無法在任何地方硬編碼。

所有的按鈕,行和單元格都是從JSON字符串中動態生成的。所以沒有硬編碼可以發生在這些。 //第一次的海報。試圖尋找解決方案,但未能

+0

檢查您是否可以在將URL傳遞給window.open之前對其進行編碼。您可以在這裏查看詳細信息 - http://www.w3schools.com/jsref/jsref_encodeuri.asp –

+0

我沒有遇到URL編碼問題。我找不到將URL直接發送到.aspx頁面的方法,而無需直接將值直接編碼到「OpenURL()」方法中。例如:我想要做「OpenURL(var)」,但它直接讀取它。因此,我將不得不做「OpenURL(www.google.com)」,這違背了變量URL的目的。對不起,如果我問這個問題不好。 –

+0

你嘗試過「OpenURL(」+ var +「)」還是你也可以使用瀏覽器存儲:本地存儲? –

回答

0

如果你知道網址是你在建立按鈕時什麼,你可以這樣做:

Button b = new Button(); 
var url = "some url"; 
b.Attributes.Add("onClick", string.Format("OpenURL({0})",url)); 
bCell.Controls.Add(b); 

如果你不知道該URL後才頁面已加載,您可以將其存儲在頁面上的變量中,並在您單擊鏈接時檢索它。

<script> 
    var url; 

    //have whatever you use to set the url call this function 
    function setUrl(inputUrl){ 
     url = inputUrl; 
    } 

    function OpenURL(){ 
     var x = window.open(url,'some window'); 
    } 
</script> 
+0

謝謝你,這是有幫助的。我沒有想到以這種方式使用替換字符串。 –