我有一个gridview,需要在gridview中按下按钮时将两个参数传递给javascript函数。脚本如下:
<script type="text/javascript">
function AddItem(name,price) {
javascript: simpleCart.add('name=' + name, 'price=' + price, 'quantity=1');
}
</script>
在gridview中,我尝试像这样传递参数:
<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick="AddItem('<%# Eval("Name") %>', '<%# Eval("Price") %>')" />
提示"Server tag is not well - format error"。
我也试过这样:
<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick='<%# Eval("Name","Price", "return AddItem({0},{1})") %>' />
但是Eval函数似乎只允许传递1个参数
<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click"
OnClientClick='<%# Eval("Name", "AddItem("{0}", ").ToString() + Eval("Price", ""{0}")").ToString() %>' />
试着这样修改:
<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick='<%# "AddItem('" + Eval("Name") + "', '" + Eval("Price") + "')"' />
或者这个也可以
<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick="AddItem('<%# Eval("Name") %>', '<%# Eval("Price") %>')" />
在服务器控件属性中使用引号会扰乱编译过程,因为它无法确定属性的结束位置。您可以使用撇号(第一个例子)或转义引号(第二个例子)