我在使用Eval()绑定javascript方法调用时遇到错误。 以下是转发器控件中的代码行:
<asp:Button ID="View" runat="server" Text="View" CommandName="View" OnClientClick="OpenInNewWindow(<%# Eval("JobID")%>)">
</asp:Button>
我需要为该javascript方法获取值jobId。任何人都可以帮助我吗?
答案 0 :(得分:1)
我猜你在JobID周围缺少引号。
尝试:
<asp:Button ID="View" runat="server" Text="View" CommandName="View" OnClientClick="OpenInNewWindow('<%# Eval("JobID")%>')">
</asp:Button>
答案 1 :(得分:1)
试试这个:
<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click"
OnClientClick='<%# Eval("JobID", "OpenInNewWindow(\"{0}\").ToString()") %>'/>
每个单引号迷失标记解析器。除此之外,表达式几乎与常规C#表达式
的评估方式相同更正了语法
答案 2 :(得分:0)
在代码后面或后面的代码中设置OnClientClick
属性添加行page.DataBind()
。当页面被绑定时,它将评估JobID
并将值添加到发送给客户端的页面。
如果您需要更多信息,可以在其他论坛上查看ASP.NET data binding overview或this发布信息。 我通常避免页面绑定,而是在代码后面设置属性。虽然页面绑定非常有用,但我发现它不太可预测(他们是否在页面加载时调用bind?在按钮事件中?)并且有时很复杂(一个变量需要在页面加载时绑定,但另一个变量需要绑定)。
答案 3 :(得分:0)
<asp:Button ID="View" runat="server" Text="View" CommandName="View" OnClientClick="window.open('yourpage.aspx?JobID=<# Eval("JobID")','','width=200,height=100')">
</asp:Button>
答案 4 :(得分:0)
不要以声明方式绑定javascript函数。通过捕获相应网格的itemdatabound事件在代码中执行此操作。在这种情况下,首先获取对按钮的引用然后定义将javascript函数绑定为:
int JobID = DataBinder.Eval(e.Row.DataItem, "JobID").ToString();
Btn.Attributes.Add("OnClientClick","javascript:OpenInNewWindow(" + JobID + ")");
希望有帮助...