从gridview向javascript传递参数时出现服务器标签错误



我有一个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(&quot;Name&quot;) %>', '<%# Eval(&quot;Price&quot;) %>')" />

在服务器控件属性中使用引号会扰乱编译过程,因为它无法确定属性的结束位置。您可以使用撇号(第一个例子)或转义引号(第二个例子)

最新更新