ASP.NET中的Javascript:有条件地制作href / http请求?

时间:2011-05-20 15:34:42

标签: javascript asp.net

我是ASP.NET和javascript的新手,所以我很失落如何做很多事情。但我现在真正需要做的是:

我正在处理的网站有一个链接,可以发出http请求,并且位于网格中,如下所示:

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

我需要做的是在顶部编写一个代替这一行的javascript函数,这样我就可以检查网格中的另一个元素,并且当另一个元素具有某个值时才发出http请求。我尝试重写它:

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

和顶部的函数Call:

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

但它只是打开一个新的标签,其中包含:空白的网址。我应该在这做什么?

3 个答案:

答案 0 :(得分:1)

试试这个:

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

注意href。

中的括号

然后重写你的JavaScript函数:

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

答案 1 :(得分: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/

答案 2 :(得分:0)

您也可以使用GridView的RowDataBound事件在ASP.NET中解决此问题(如果您使用的是DataGrid,则使用ItemDataBound事件)。

为绑定到gridview的每一行调用事件,这使您能够根据另一个单元格的值或基于行的数据键或任何条件更改行中的任何单元格你真的能想出来。