传递多个eval()函数从ASPX JavaScript函数 [英] Passing multiple Eval() to a JavaScript function from ASPX

查看:179
本文介绍了传递多个eval()函数从ASPX JavaScript函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图传递多个的eval()参数从的.aspx 文件中的JavaScript功能,但我不断收到编译器错误。我是新来的JavaScript,从来没有真正使用的eval()之前。我在哪里去了?

I am trying to pass multiple Eval() arguments to a JavaScript function from an .aspx file, but I keep getting compiler errors. I am new to JavaScript and have never really used Eval() before. Where am I going wrong?

NB :如下行实际上是全部在一行上,但在这里裹着为清楚起见:

NB: The line shown below is actually all on one line, but is wrapped here for clarity:

<asp:LinkButton runat="server" Text='<%#Eval("Title")%>'
    OnClick='javascript:ShowEventDetails'
    CommandArgument='<%#
        Eval("EventID").ToString()          & Eval("Title").ToString() &
        Eval("Location").ToString()         & Eval("StartTime").ToString() &
        Eval("Description").ToString()      & Eval("Link").ToString() &
        Eval("ContactFirstName").ToString() & Eval("ContactLastName").ToString() &
        Eval("ContactEmail").ToString()     & Eval("InsertionTime").ToString() &
        Eval("EventAdmin").ToString()%>); ' />

是否有这样做的更好的方法?如果是这样,它们是什么?

Are there better ways of doing this? If so, what are they?

推荐答案

的OnClick 是在其期望的事件处理方法的引用该控件的属性。在单击属性把JavaScript就无法工作。

OnClick is a property on the control which expects a reference to an event handler method. Putting JavaScript in the OnClick property will not work.

如果您要执行任意JavaScript单击该按钮时,使用<一个href=\"http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.onclientclick.aspx\"相对=nofollow>的OnClientClick 。我presume要在evals传递到ShowEventDetails作为参数(格式化以提高可读性):

If you want to execute arbitrary JavaScript when the button is clicked, use OnClientClick. I presume you want to pass the evals into ShowEventDetails as arguments (formatted for readability):

<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("Title")%>' 
    OnClientClick='ShowEventDetails("<%# Eval("EventID").ToString() %>",
        "<%# Eval("Title").ToString() %>",
        "<%# Eval("Location").ToString() %>",
        "<%# Eval("StartTime").ToString() %>",
        "<%# Eval("Description").ToString() %>",
        "<%# Eval("Link").ToString() %>",
        "<%# Eval("ContactFirstName").ToString() %>",
        "<%# Eval("ContactLastName").ToString() %>",
        "<%# Eval("ContactEmail").ToString() %>",
        "<%# Eval("InsertionTime").ToString() %>",
        "<%# Eval("EventAdmin").ToString() %>");' />

基本上你正在构建一个长字符串:

Essentially you are constructing one long string:

ShowEventDetails('123','Event Title','New York' ... etc ...

这是JS点击LinkBut​​ton的时候执行。

Which is executed in JS when the LinkButton is clicked.

这篇关于传递多个eval()函数从ASPX JavaScript函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆