3

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

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

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

4

5 回答 5

1

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

尝试:

<asp:Button ID="View" runat="server" Text="View" CommandName="View" OnClientClick="OpenInNewWindow('<%# Eval("JobID")%>')">
</asp:Button>
于 2012-12-11T05:13:42.603 回答
1

试试这个:

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

每个单引号都会使标记解析器迷失方向。除了这个之外,表达式的计算方式与常规 C# 表达式几乎相同

更正了语法

于 2012-12-11T05:59:40.047 回答
0

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

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

于 2012-12-11T05:02:15.577 回答
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>
于 2012-12-11T05:14:34.587 回答
0

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

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

希望有帮助...

于 2012-12-11T05:52:16.407 回答