首页 新闻 会员 周边

购物车如何做到添加同样的商品能够合并,然后数量加一

1
悬赏园豆:10 [已解决问题] 解决于 2015-09-05 09:09

购物车如何做到添加同样的商品能够合并,然后数量加一

雷大叔的主页 雷大叔 | 初学一级 | 园豆:51
提问于:2015-09-04 14:00
< >
分享
最佳答案
0

你的设计其实是可以和控件无关的存在,但是你如果要用ListView,我想这个控件应该用ItemCommand之类的事件,你传递一个CommandArgument参数作为商品ID,在ItemCommand里把这个Argment接收一下,后端不就可以处理了吗。

收获园豆:10
空明流光 | 初学一级 |园豆:106 | 2015-09-04 21:46

我是想用JavaScript控制数量的增减,所以说commandArgument应该不太行吧

雷大叔 | 园豆:51 (初学一级) | 2015-09-04 21:48

@leiyahui: 没有问题呀,你可以在ItemDataBind时动态生成一些JavaScript到页面中,在这个事件中你可以使用FindControl找到相关控件,动态生成你想要的JavaScript代码。

其实呀,我觉得你的思路是有问题的,既然用了服务端控件就有一整套,要么不用,用了服务端控件,却要手写JS,就是相当于拿了个带刺刀的枪,枪是坏的,你不觉得这刀太重了么?

如果要实现Ajax, 可以使用 UpdatePannel呀?

如果不想使用服务端控件,直接用HTML + Ajax 不就可以了么?

空明流光 | 园豆:106 (初学一级) | 2015-09-04 22:00

@沧海一杰: 恩恩,我还是菜鸟学生,所以水平比较菜,谢谢你的帮助

雷大叔 | 园豆:51 (初学一级) | 2015-09-04 22:01
其他回答(2)
0

添加前判断一下就可以了。

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-09-04 14:02

那一般购物车里的信息需要保存到SEssion里吗

 

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 14:05

第一次写购物车,不太懂

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 14:05

@leiyahui: 那么问题来了,

你是不懂写购物车,还是不懂的如何做到添加同样的商品能够合并?

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-09-04 14:19

@爱编程的大叔: 确切的说是购物车

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 14:22

@leiyahui: 

我很认真的,没有嘲笑你的意思。

1、你懂得如何写购物车,所以你的问题是如何合并数量,我当然说先判断一下了。

2、至于购物车里面的数据,你总得找个地方存放的,不然如何判断?!

3、我问的意思就是要你确切知道哪个地方你不知道,一个大问题分成N个小问题,就简单了。

4、你回答我的表示你是不知道如何写购物车(先不用管合并的事情,你得写出来,然后才管合并),饭要一口一口吃。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-09-04 14:25

@爱编程的大叔: 谢谢指导啦

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 14:25

@爱编程的大叔: 大叔,请问一下您那里有源码之类的吗,我在网上找的都不太满意

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 14:27
0

一件物品在数据库保存的ID一样的,加一样的,就在数据库累计1就行,没必要去保存信息,都是一个ID,进行传送

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-04 14:20

那么信息需要保存在SEssion中吗

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 14:23

@leiyahui: 你建立一张购物车的表,保存物品的ID与数量等一些信息,你加入物品,直接更新数据库,你为什么一定要保存到session,保存session的数据尽量少一些

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-04 16:31

@稳稳的河:恩谢谢

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 16:32

@leiyahui: 其实购物车就是几张表的问题,你搞明白你数据库表的关系,你问的问题就都明白了

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-04 16:35

@稳稳的河: 恩恩,方便把QQ给我吗

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 16:35

@leiyahui: 可以保存在cookie,session及到数据库里,这个也要分情况,如果你想让用户可以没有登录就能访问购物车,就可以存在cookie里,当用户登录以后,可以立即同步到数据库,一般不会存在session里,对服务器性能影响比较大的,如果是小站点就无所谓了。

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2015-09-04 19:20

@沧海一杰:如果用ListView这个控件,那么数量增加这个东西如何实现,就是说每个“+”这个按钮的ID都一样,如何区别是哪种商品的增加,我写的源代码在下边

 

<asp:ListView runat="server" ID="Lv_Cart"
           ItemPlaceholderID="itemplaceholder">
            <LayoutTemplate>
               
                    <table>
                        <tr>
                            <th>产品名称</th>
                            <th>单价</th>
                            <th>数量</th>
                            <th>删除</th>
                        </tr>
                         <div runat="server" id="itemplaceholder">
                               </div>
                    </table>
              
            </LayoutTemplate>
            <ItemTemplate>
                <tr>
                    <td><%#Eval("pro_name") %></td>
                    <td><%#Eval("pro_price") %></td>
                    <td><asp:Button  runat="server" ID="Btn_Reduce" Text="+"/>
                        <asp:TextBox runat="server" Text='<%#Bind("cart_pro_id") %>' ID="Tb_num">

                        </asp:TextBox>
                        <asp:Button runat="server" ID="Btn_Plus" Text="-" />
                    </td>
                    <td>
                        <asp:Button runat="server" ID="Btn_deleting" Text="删除" OnCommand="Cart_Deleting" CommandArgument='<%#Eval("cart_pro_id") %>' />
                    </td>
                </tr>
            </ItemTemplate>

        </asp:ListView>

支持(0) 反对(0) 雷大叔 | 园豆:51 (初学一级) | 2015-09-04 19:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册