我最近发布了询问如何将数据绑定数据传递给javascript函数。在帮助下,我得到了我想要的结果;但是,我之后立即遇到了另一个问题。
<asp:ImageButton ID="ImageButton1" CommandArgument='<%# Eval("MECNUM") %>' runat="server" ImageUrl="printer.png" OnClick="Display_OnClick"
OnClientClick='<%# Eval("MECNUM", "Display_OnClientClick({0})") %>' />
让我们说MECNUM来自XYZ。不幸的是,它抛出一个错误,说XYZ是一个未定义的变量。我真正想要的是字符串&#34; XYZ&#34;被通过。放XYZ.toString()没有工作,因为问题仍然是未定义的变量。有什么想法吗?
function Display_OnClientClick(mecnum) {
alert(mecnum);
}
非常感谢你的帮助
答案 0 :(得分:2)
您需要将其括在双引号中。像这样。
'<%# Eval("MECNUM", "Display_OnClientClick(\"{0}\")") %>'
为什么需要这样做?
如果你不这样做,它会生成这样的javascript - Display_OnClientClick(XYZ)
。
所以很明显XYZ需要是javascript变量或者之前定义为javascript变量。要掩盖这一点,您需要Display_OnClientClick("XYZ")
。这里会说XYZ是一个字符串并且可以工作。这是唯一的原因。
如果您遇到引号转义问题(js错误),您可以参考此问题 - how to escape characters when using server side delimiters