日期:2014-05-17  浏览次数:20405 次

请教控件的OnClientClick属性的正确写法以及原因
function DeleteConfirm(info) {
    return window.confirm("是否删除数据:" + info);          //点击删除按钮时出现确定窗口
    
}
js处的代码如上,我把它加到按钮的OnClientClick

OnClientClick="return DeleteConfirm(<%#Eval("建筑名称")%>)"
系统说无法解析

OnClientClick="return DeleteConfirm('<%#Eval("建筑名称")%>')"
系统还是无法解析

OnClientClick=<%#"return DeleteConfirm('" + Eval("建筑名称")+"')"%>
查网上发现这种终于能解析了,但是VS又说我属性值没加引号。但是倒不影响运行

OnClientClick="<%#"return DeleteConfirm('" + Eval("建筑名称")+"')"%>"
于是又改成这样,vs不报错了,但是一运行又不能解析了。

这个html的双单引号用法这么奇怪吗,怎么写才是正确的。以及原因是什么
------最佳解决方案--------------------
sorry,写错了。

OnClientClick='<%#"return DeleteConfirm(\0027" + Eval("建筑名称")+"\0027)"%>'

或者更好地是

OnClientClick='<%#GetMyJavascript((string)Eval("建筑名称"))"%>'
并且自己在页面上写一个万能的GetMyJavascript转换函数。
------其他解决方案--------------------
最外层的用单个,里层不管在什么样的情况下都用双个。
------其他解决方案--------------------
OnClientClick='<%#"return DeleteConfirm('" + Eval("建筑名称")+"')"%>'

原因你自己想吧。
------其他解决方案--------------------
嗯,又多了一个"号。你能理解这个思路就好。
------其他解决方案--------------------
上次不给分,这次知道也不告诉你