繁体   English   中英

将值绑定到javascript方法作为参数

[英]Bind a value to a javascript method as parameter

我在使用Eval()绑定javascript方法调用时遇到错误。 以下是转发器控件中的代码行:

<asp:Button ID="View" runat="server" Text="View" CommandName="View" OnClientClick="OpenInNewWindow(<%# Eval("JobID")%>)">
                        </asp:Button>

我需要为该javascript方法获取值jobId。 谁能帮我吗?

我猜你在JobID周围缺少引号。

尝试:

<asp:Button ID="View" runat="server" Text="View" CommandName="View" OnClientClick="OpenInNewWindow('<%# Eval("JobID")%>')">
</asp:Button>

尝试这个:

<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" 
     OnClientClick='<%# Eval("JobID", "OpenInNewWindow(\"{0}\").ToString()") %>'/>

每个单引号迷失标记解析器。 除此之外,表达式的评估几乎与常规C#表达式相同

更正了语法

在代码后面或后面的代码中设置OnClientClick属性添加行page.DataBind() 绑定页面时,它将评估JobID并将值添加到发送到客户端的页面。

如果您需要更多信息,可以在另一个论坛上查看ASP.NET数据绑定概述帖子。 我通常避免页面绑定,而是在代码后面设置属性。 虽然页面绑定非常有用,但我发现它不太可预测(他们是否在页面加载时调用bind?在按钮事件中?)并且有时很复杂(一个变量需要在页面加载时绑定,但另一个变量需要绑定)。

<asp:Button ID="View" runat="server" Text="View" CommandName="View" OnClientClick="window.open('yourpage.aspx?JobID=<# Eval("JobID")','','width=200,height=100')">
</asp:Button>

不要以声明方式绑定javascript函数。 通过捕获相应网格的itemdatabound事件在代码中执行此操作。 在这种情况下,首先获取对按钮的引用然后定义将javascript函数绑定为:

    int JobID = DataBinder.Eval(e.Row.DataItem, "JobID").ToString();
    Btn.Attributes.Add("OnClientClick","javascript:OpenInNewWindow(" + JobID + ")");

希望有帮助......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM