2011-05-20 78 views
2

我真的很新,ASP.NET和JavaScript,所以我很遺憾如何做很多事情。但其實我現在需要做的是:ASP.NET中的Javascript:有條件地製作href/http請求?

網站我的工作有一個鏈接,使發出HTTP請求,並位於網格內,因爲這樣的:

<a target="_blank" href='<%# Eval ("ServerURL","{0}Thing.aspx") %>'> 

我需要做的是在頂部寫一個javascript函數來代替這一行,這樣我就可以檢查網格中的另一個元素,並且只有在其他元素具有特定值時才發出http請求。在頂部

<a target="_blank" href='javascript:Call(<%# Eval ("ServerURL","{0}Thing.aspx") %>);'> 

和函數調用:我試圖重寫它是這樣

<script type="text/javascript"> 
    function Call (url){ 
     return url; 
    } 
</script> 

但它是所有開放與一個新的標籤:空白的URL。我應該在這裏做什麼?

+0

已查看源(HTML)?它包含的鏈接是什麼? – 2011-05-20 15:39:22

回答

1

重寫它

HTML

<a target="_blank" onclick="return Call(this);" href='<%# Eval ("ServerURL","{0}Thing.aspx") %>'> 

的JavaScript

<script type="text/javascript"> 
    function Call (elem){ 
     // make your checks here based on the element you clicked (the elem parameter) 
     if (checks_passed) 
     { 
      return true; // when the onclick handler returns true the link action is followed 
     } 
     return false; // when the onclick handler returns false the action is cancelled 
    } 
</script> 

演示在http://jsfiddle.net/efQ6R/

+0

正是我在找什麼。儘管我需要稍微調整一下以增加額外的參數,但事實證明是正確的。 – Tom 2011-05-20 18:34:06

+0

@Tom,很高興我們引導你走向正確的方向:) – 2011-05-20 19:00:04

1

試試這個:

<a href='javascript:Call("<%# Eval ("ServerURL","{0}Thing.aspx") %>");'> 

音符內HREF括號。

然後重寫你的JavaScript函數:

function Call(url){ 
    window.open(url, "_blank"); 
} 
0

您可以在ASP.NET中使用RowDataBound事件的GridView(或ItemDataBound事件,如果你正在使用一個DataGrid)還解決這個問題。

爲綁定到gridview的每一行調用該事件,並使您能夠根據另一個單元格的值或基於該行的數據鍵更改該行中的任何單元格,或者你可以真正想出的標準。