ASP.NET之电子商务系统开发-4(二级分类)

一、前言

继上次的订单,这是第四篇。记录一下分类和筛选。这功能是最后做的,因为我完全不懂其原理。后来通过同学的指导(一位很有天赋的同学,比我牛逼一个层次,同样是高三。:D),终于也是完成了。在写这篇博客之前还有点半懂不懂,经过些许时间的思考,终于全懂了,可以将其写下来。

二、开始

1.先看一下表设计

这是一级类别表,因为是电子商务系统,所以就暂时7个类别。

然后二级类别:

GS_ID跟Sort_ID是一样的。

最后商品信息表里面需要这样:

两个ID分别对应Sort1和Sort2.

2.前台

前台的话,正是用了URL传值,不知道淘宝天猫用的是哪种传值。那么先来看一下自己做的效果:

(1):正常打开一个页面

此时后台该是直接加载:

public void dataload()
        {
            SqlDataSource4.SelectCommand = "select * ,(CASE WHEN datalength(Goods_name) <= 12 THEN Goods_name ELSE SUBSTRING(Goods_name, 1, 12) + ‘...‘ END) AS Goods_name1  FROM GoodsInfo " + ((Request.QueryString["Ord"] != null) ? "order by " + Request.QueryString["Ord"].ToString() : "");
        }

显示出来所有商品。

(2):点击一级类别中的任意一个,出现:。当然底下商品也随之变动了,他的前台用了一个URL:

<a href="NewGoods.aspx?SID1=<%#Eval("Sort_ID")%>" class="sortboxtext"><%#Eval("Sort_name")%></a>

后台加载时加入条件:

public void dataloadgoods()
        {
            SqlDataSource4.SelectCommand = "select * ,(CASE WHEN datalength(Goods_name) <= 12 THEN Goods_name ELSE SUBSTRING(Goods_name, 1, 12) + ‘...‘ END) AS Goods_name1  FROM GoodsInfo  where GS_id =‘" + Request.QueryString["SID1"] + "‘" + ((Request.QueryString["Ord"] != null) ? "order by " + Request.QueryString["Ord"].ToString() : "");
        }

可以看到from GoodsInfo  where 后面的条件:GS_id = (此处就是前台传过来的URL了)。

(3)点击一级类别后,再点击二级类别,出现:。底下商品随之变动。

前台:

<a href="NewGoods.aspx?SID1=<%#Eval("GS_ID")%>&SID2=<%#Eval("Sort2_ID")%>" class="sortboxtext2"><%#Eval("Sort_name")%></a>

后台:

public void dataloadgoods2()
        {
            SqlDataSource4.SelectCommand = "select * ,(CASE WHEN datalength(Goods_name) <= 12 THEN Goods_name ELSE SUBSTRING(Goods_name, 1, 12) + ‘...‘ END) AS Goods_name1  FROM GoodsInfo  where GS_id =‘" + Request.QueryString["SID1"] + "‘ and GS2 = ‘" + Request.QueryString["SID2"] + "‘" + ((Request.QueryString["Ord"] != null) ? "order by " + Request.QueryString["Ord"].ToString() : "");
        }

可以看到,在SID1的基础上,加了一个条件,用and连接,在后面写GS2 = (此处就是前台传过来的二级类别的URL)。 后面的获取Ord是一个判断。

(4)此页面中还有一个排序,也就是筛选,当你点击“价格”或是”最新发布”时,出现:。可以看到在SID2后面有一个&,&后面还有一个条件

前台:

<a href="NewGoods.aspx?<%=((Request.QueryString["SID1"] !=null)?"SID1="+Request.QueryString["SID1"].ToString():"") %>&<%=((Request.QueryString["SID2"] !=null)?"SID2="+Request.QueryString["SID2"].ToString():"") %>&Ord=In_store_price" class="seqencingtext">价格</a>

用了三目运算符,如果不为空,就将SID1、SID2以及Ord传到后台,Ord是自己定义的一个URL名称。Ord=(此处的名称,应该跟你数据库中字段对应)

后台跟上面的二级类别一样,只不过上面前台没有Ord,后台的Ord就是空了。这个前台多了一个Ord,后台获取也就多了一个:

public void dataloadgoods2()
        {
            SqlDataSource4.SelectCommand = "select * ,(CASE WHEN datalength(Goods_name) <= 12 THEN Goods_name ELSE SUBSTRING(Goods_name, 1, 12) + ‘...‘ END) AS Goods_name1  FROM GoodsInfo  where GS_id =‘" + Request.QueryString["SID1"] + "‘ and GS2 = ‘" + Request.QueryString["SID2"] + "‘" + ((Request.QueryString["Ord"] != null) ? "order by " + Request.QueryString["Ord"].ToString() : "");
        }

可以看到,最后Ord不为空,那么就order by Ord了。

(5)最后一种情况:

这个只需要在前台的Radlistview中加入:

<telerik:RadListView ID="RadListView3" runat="server" AllowPaging="True" ItemPlaceholderID="item" PageSize="15" DataSourceID="SqlDataSource4">
                          <EmptyDataTemplate>
                                    <div class="tiptext">暂无此商品!</div>
                                </EmptyDataTemplate>

就可以了。

以上,就是二级分类的基本内容了,不知道天猫淘宝是怎么实现的。每个浏览器可传的URL长度不同,不过在这个项目里,还达不到2000多字符那种长度,不知道其他人是怎么弄的,希望懂的大神教教我。另外这URL的安全性也是问题,不知道怎么弄,也希望会的教一下。谢谢大家支持!

ps:记录到这,整个项目就基本差不多结束了,可能是最后一篇了。

时间: 2024-08-06 19:22:46

ASP.NET之电子商务系统开发-4(二级分类)的相关文章

ASP.NET之电子商务系统开发-2(购物车功能)

一.前言 继上次的首页数据列表后,这是第二篇.记录一下购物车这个比较庞大的功能,可能实现的方法跟其他人有点不一样,不过原理都差不多,是将cookie存数据库里面的. 二.开始 首先看一下购物车流程及对应代码. 1.如果购物车为空,就显示   其方法是创建两个大的div层,当你没有购买商品时,就显示这层,里面啥都没有,如果你点击了一个商品加入购物车,就会将这层隐藏,显示存放刚放入购物车商品信息的那一层,其控制方法如下: DataSet ds = bllShopCar.ShopCarQT(Reque

《转》适用于开发人员的10个最佳ASP.NET的CMS系统

1) mojoportal mojoPortal 是一个开源的.用 C# 编写的站点框架和内容管理系统,可以运行在 Windows 中的 ASP.NET 和 Linux/Mac OS X 中的 Mono 下. 当前的特性 遵循 XHTML 的内容管理 用 WebParts 个性化自己的页面 博客 论坛 事件日历(Event Calendar ) 图像画廊(Image Gallery ) 文件管理 基于数据库.Active Directory, OpenLDAP, Open ID, 或 Windo

转:国内外著名开源b2c电子商务系统比较包括asp.net和php

from: http://longdick.iteye.com/blog/1122879 国内外著名开源b2c电子商务系统比较包括asp.net和php 博客分类: 电子商务 国内外著名开源b2c电子商务系统,大致情况如下: 一.国内知名B2C系统 1.Shopex国内最大的电子商务系统,有各种辅助工具,php开发,免费但不开源,网店模板众多,较适合有淘宝店的卖家.网址:www.shopex.cn 2.ECshop免费且开源的php系统,当前有很多B2C网店选择了这个系统.网址:http://w

web系统开发为什么用asp.net MVC,为什么不用?

向高手咨询下,现在asp.net MVC很流行,但我好像提不起兴趣.企业级Web应用,使用纯HTML+jquery交互+Http Handler(或WebAPI),不是挺好的吗?有很多优点:1.Http Handler虽然是10年时的技术,再10年也不会过时,asp.net mvc每年一个版本2.后端想换其他语言很方便3.代码清晰简洁,不会感觉很碎4.纯html下载快(gzip压缩),而View层即使模板引擎再好也会耗服务端CPU 个人更认同客户端和服务端分开,如果要做移动Web应用也很方便打包

Magento和OpenERP,OPENERP二次开发,openerp电子商务系统,电子商务系统

(方案一) (方案二) Magento:(麦进斗) 是一套专业开源的电子商务系统.Magento设计得非常灵活,具有模块化架构体系和丰富的功能.易于与第三方应用系统无缝集成.其面向企业级应用,可处理各方面的需求,以及建设一个多种用途和适用面的电子商务网站. 包括购物.航运.产品评论等等,充分利用开源的特性,提供代码库的开发,非常规范的标准,易于与第三方应用系统无缝集成. OpenERP:模块有大约2000个,涵盖了各行各业各领域的管理要求.系统的标准安装包中的功能模块有:销售管理(Sales m

有钱花园复利系统开发

有钱花园复利系统开发找 微or电 158-1500-1390 [小凡团队]有钱花园系统开发,有钱花园软件开发,有钱花园平台开发系统,有钱花园app开发,有钱花园理财游戏开发. 互联网颠覆了传统的商业模式,创造了庞大的商业机遇,更改变了世界财富的分配定律!互联网已经无国界,已经引申到世界每一个角落.互联网与电子商务的结合,必将创造一个又一个新奇迹!在历史发展的当今世界.21世纪,整个世界经济发生了巨大的变化!21世纪更是一个移动互联网经济占据鳌头的市场!谁抓住了互联网市场趋向谁就抓住了,在互联网一

asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建

上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模板,本文主要讲解如何创建这个后台模板,本文创建的后台模板不集成到项目内部,只是静态html页面.后台模板是系统开发必须的,一般小公司有个3套后台模板就够用了.本项目后台模板主要是jquery easyui插件创建的,不需要美工设计就可以创建出来,而且效果还可以,具体效果图如下: 这个版面的缺点是,只能适应2层

关于java&#39; web杂谈(其实是课后作业1)1 网站系统开发需要掌握的技术

1 网站系统开发需要掌握的技术:(借鉴度娘)https://zhidao.baidu.com/question/1701850648247880220.html 需要掌握的有:Java(JavaEE)工程师 .NET软件工程师 外包开发工程师 网站设计和开发工程师 数据库工程师ERP/CRM/OA/B2C开发应用工程师 系统分析设计工程师 文档工程师相关知识,很多人软件专业方向性很强,很抽象,其实也不是这样的,还是由好多知识是集合着的,所以胜任的岗位,就可以说明你要掌握知识的覆盖面,我建议你还是

关于 电子商务系统 初步总结MVC框架管理

本次博客主要内容: 通过学习java完整的电子商务系统,并对其中一部分功能做出总结. 通过本次学习了解到 开发基本框架,步骤,知识点.少走甚至改正许多弯路. 本次电子商务系统已完成内容:后台登录,管理员管理 商品分类管理和 商品属性管理. 其中在管理员管理中第一次涉及 bean dao servlet三者mvc框架. 1.Servlet        用于验证数据.实例化JavaBean.调用DAO连接数据库.控制页面跳转 2.DAO           用于连接数据库及进行数据库的操作如:查询