我有一个运行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中格式化这个的正确方法是什么?
答案 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>