将内联ASP数据绑定传递给Javascript函数

时间:2017-12-22 11:48:32

标签: javascript asp.net

我有一个运行JavaScript方法的按钮,它接受一个参数:

function MyFunc(param)
{
    // stuff here with the value passed in
}

我从我的ASPX代码中调用它:

onclientclick="if(!MyFunc('hard coded param')) return false;"

这适用于上面的硬编码参数,但是我得到一个错误,标签没有很好地形成以下

onclientclick="if(!MyFunc('<%# String.Concat(Eval("MyParam")) %>')) return false;"

onclientclick="if(!MyFunc(''<%# String.Concat(Eval("MyParam")) %>'')) return false;"

在ASP中格式化这个的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

这个问题从一开始就存在于ASP.NET中。如果属性中包含数据绑定,则需要切换到单引号以构建属性。我也尝试将整个属性值放在数据绑定块中以避免更多问题。

我会像这样编码:

 onclientclick='<%# String.Concat("if(!MyFunc(\"", Eval("Text"), "\")) return false;") %>'

答案 1 :(得分:0)

<%# String.Concat(Eval("MyParam")) %>更改为<%# String.Concat(Eval(\"MyParam\")) %>

答案 2 :(得分:0)

<asp:Button runat="server" OnClientClick='<%# "if(!MyFunc(\""+ Eval("MyParam")+"\"))return false" %>'  Text="Hello"/>

<script type="text/javascript">
            function MyFunc(param) {
                alert(param);
            }

</script>