[英]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.