是否可以从asp.net Eval方法将数据传递给javascript函数?

时间:2011-12-27 20:08:37

标签: javascript asp.net ajax

我想在模态弹出窗口中显示数据。

这就是我所拥有的,一个带有链接按钮的网格,其中包含onclientclick,如下所示:OnClientClick='showComfirm(this, <%# Eval("Message") %>); return false;'

然后在javascript中,

function showConfirm(source, message){
     this._source = source; 
     document.getElementById('lblmessage').text=message; // not sure if this proper syntax though.
     this._popup = $find('mdlPopup');
     this._popup.show();     
 }

更新

我得到的javascript错误是由于varialble“message”包含的文本。 varialbe包含简单的英文文本,如电子邮件,大写字母,小写字母,感叹号,逗号,句号,apostrophies,双引号,空格等。那么有一个解决方法吗?谢谢,R。

2 个答案:

答案 0 :(得分:1)

是的,它是可能的,只需理顺引号等等你应该拥有它(你可能需要在消息周围添加一些引号,以便字符串实际连接并正确地成为javascript中的字符串)。

要调试它的任何问题,只需在渲染控件时在浏览器中查看源代码,并确保给定行生成的javascript是正确的。

示例:

你想要这个:

OnClientClick='showComfirm(this, "Are you sure you want to do this?"); return false;'

而不是这个:

OnClientClick='showComfirm(this, Are you sure you want to do this?); return false;'

<强>更新

我能够让这个工作:

<asp:LinkButton ID="LinkButton1" runat="server" onclientclick='<%# "alert(\"" + Eval("Message") + "\");" %>' Text='<%# Eval("Message") %>'></asp:LinkButton>

当然,我正在使用C#,VB等价物将是:

<asp:LinkButton ID="LinkButton1" runat="server" onclientclick='<%# "alert(""" + Eval("Message") + """);" %>' Text='<%# Eval("Message") %>'></asp:LinkButton>

如果仍然无效,请尝试使用IE&amp; VS或FireFox&amp;萤火。也许错误在于函数而不是调用。

请注意,LinkBut​​ton控件会自动为回发创建HRef代码,所以在我的警告消息之后,我得到一个不会影响我的测试的回发,但它可能与您的实际情况有关。也许是一个简单的&lt; a&gt;标签比LinkBut​​ton控件更适合你。

如果您仍然无法运行此功能,是否可以回复您收到的JavaScript错误?

答案 1 :(得分:0)

是的,就像那样。

OnClientClick='<%# "showComfirm(this, \"" + Eval("Message") + "\"); return false;" %>'

&lt;%#%&gt;不只是显示数据,它将数据绑定到字段,因此如果您使用单引号,则只能在内部使用绑定表达式。