需要Javascript购物车帮助

时间:2011-12-07 14:03:54

标签: javascript asp.net gridview shopping-cart

我有一个包含产品列表的gridview,需要将这些添加到javascript购物车中。 使用以下代码,这非常有效:

<a href="javascript:;" onclick="simpleCart.add( 'name=<%# Eval("Name") %>' , 'price=<%# Eval("Price") %>' , 'quantity=1' );">Add To Cart</a>

但是,当产品添加到购物车时,我还需要执行一些服务器端功能,所以我想用一个按钮替换上面的内容并调用onClick和onClientClick,如下所示:

<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick="AddItem()" />
                <script type="text/javascript">
                    function Additem() {
                        javascript: simpleCart.add('name=<%# Eval("Name") %>', 'price=<%# Eval("Price") %>', 'quantity=1');
                    }    
    </script> 

这不会产生任何错误,但javascript似乎不起作用(因为没有产品添加到购物车中),但是服务器端代码正在正确执行。

2 个答案:

答案 0 :(得分:1)

在您的情况下,您创建了许多全局函数,它将仅用于最新的函数。向您的数据提供此函数的参数,并在页面上仅声明一次。

更改为:

<asp:Button ID="AddCartButton" runat="server" Text="Add To Cart" onClick="AddCartButton_Click" OnClientClick="AddItem('<%# Eval("Name") %>', '<%# Eval("Price") %>')" />

并且在数据boundind之外:

            <script type="text/javascript">
                function Additem(name, price) {
                    javascript: simpleCart.add('name=' + name, 'price=' + price, 'quantity=1');
                }    
            </script> 

答案 1 :(得分:0)

我不得不将onClientClick更改为:

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

功能:

<script type="text/javascript">
                function Additem(name, price) {
                    javascript: simpleCart.add('name=' + name, 'price=' + price, 'quantity=1');
                }    
            </script> 

正如Samich上面提供的那样。