【问题标题】:Javascript shopping cart help needed需要 Javascript 购物车帮助
【发布时间】:2011-12-07 14:03:53
【问题描述】:

我有一个带有产品列表的 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 似乎无法正常工作(因为没有产品添加到购物车中),但服务器端代码正在正常执行。

【问题讨论】:

  • 将商品添加到购物车后如何向服务器发送消息?
  • 是的,按钮会导致回发,除非启用数据网格id ajax,否则客户端调用真的没有意义。
  • 购物车完全是用javascript完成的,我是从simplecartjs.com得到的。但我还需要添加服务器端功能(访问数据库),这样做似乎是最简单的方法,因为我知道一些 C#,但对 asp.net/javascript 等完全陌生。

标签: javascript asp.net gridview shopping-cart


【解决方案1】:

在您的情况下,您正在创建许多全局函数,并且只会使用最新的函数。向此函数提供带有参数的数据,并在页面上仅声明一次。

改为:

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

和数据边界之外:

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

【讨论】:

  • 既然你先发这个,我就删了我的回答。
  • 我现在收到以下错误:“/”应用程序中的服务器错误。解析器错误描述:解析服务此请求所需的资源时发生错误。请查看以下特定的解析错误详细信息并适当地修改您的源文件。解析器错误消息:服务器标签格式不正确。
  • 尝试将属性更改为以下:OnClientClick='&lt;%# "AddItem(" + Eval("Name") + ", " + Eval("Price") + ");" %&gt;'
【解决方案2】:

我不得不将 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 上面提供的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多