您的位置:首页 > 编程语言 > ASP

用ASP.NET实现简单的超市管理系统-商品主页面

2017-03-23 14:02 701 查看
1.     商品管理列表页

要求:设计相关界面

完成商品列表展示,根据商品类别(当商品类别为全部时,查询全部)和商品名称(进行模糊查询)进行查询,展示出列表。

点击商品名称,跳转到商品编辑界面。

检索按钮:实现重新检索功能

删除按钮:将选择的商品进行删除

新增按钮:打开新增商品界面

1、          商品列表展示

添加一个GridView控件

编辑并添加列六列:选择、商品名称、商品类别、商品价格、是否打折、折后价

然后绑定数据

并通过执行SQL语句来展示商品列表:

因为:后面的下拉列表类别检索和输入名检索SQL语句代码重复性大,所在绑定这块儿可以直接先设置条件到时候,可以直接调用是绑定函数;

注意:在加载页中要将绑定函数放进去,否则无效!

/// <summary>

        /// 绑定数据并显示

        /// </summary>

        private void BinData()

        {

            //获取分类id和输入名

            int typeId = this.gvSort.SelectedIndex;

            string name = txtSearchName.Text;

            StringBuilder sql = new StringBuilder();

            sql.AppendLine("SELECT CommodityID,CommodityName,SortName,CommodityPrice,IsDiscount,ReducedPrice");

            sql.AppendLine("FROM dbo.Commodity AS c");

            sql.AppendLine("INNER JOIN dbo.CommoditySort AS s");

            sql.AppendLine("ON c.SortID=s.SortID");

            sql.AppendLine("WHERE 1=1");

            //当下拉列表框索引不为0,即选项不为"全部"时

            if(typeId!=0)

            {

                sql.AppendLine("AND c.SortID=@SortID");

            }

            //当输入名不为空时

            if (!string.IsNullOrEmpty(name))

            {

                sql.AppendLine("AND CommodityName LIKE @name");

            }

            SqlParameter[] pms ={

                                new SqlParameter("@SortID",SqlDbType.Int,4),

                                new SqlParameter("@name",SqlDbType.VarChar,50)

                               };

            pms[0].Value = typeId;

            pms[1].Value="%"+name+"%";

            DataSet ds = DbHelperSQL.Query(sql.ToString(),pms);

            gvCommodity.DataSource = ds;

            gvCommodity.DataBind();

        }

(1)   检索功能:可以直接调用绑定函数

        ///<summary>

        ///检索

        ///</summary>

        ///<paramname="sender"></param>

        ///<paramname="e"></param>

        protectedvoid btnSearch_Click(objectsender,
EventArgs e)

        {

            //获取输入商品名

            BinData();

        }

 

(2)选择主要是存放商品ID并通过CheckBox控件来实现选中,最后通过删除按钮来将选中列删除!

<asp:TemplateField
HeaderText="选择">

             <ItemTemplate>

                    <asp:CheckBox
ID="CheckSelect"
runat="server" />

             </ItemTemplate>

</asp:TemplateField>

删除功能:

首先定义一个查询对象:用于执行删除语句和输出选中状态,然后根据查询结果的行数来判断是否有行被选中!主要分两个分支:第一个是大于0,即有选择的情况,第二个是未选中的情况。当选中后需要先去掉查找出来的” CommodityID”后面的“,”号,然后再分为多选和单选两个分支来执行删除语句!特别注意

特别注意:CommodityID需要隐藏,在GridView中设置属性:DataKeyNames="CommodityID"

/// <summary>

        /// 删除

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        protected void btnDelete_Click(object sender, EventArgs e)

        {

                //定义一个查询对象sId

                StringBuilder sId = new StringBuilder();

                //GridView当中遍历被选中的行,并输出选中行对应的商品ID

                foreach (GridViewRow gvr in gvCommodity.Rows)

                {

                    CheckBox CheckSelect = gvr.FindControl("CheckSelect") as CheckBox;

                    if (CheckSelect.Checked)

                    {

                        sId.Append(gvCommodity.DataKeys[gvr.RowIndex]["CommodityID"] + ",");

                    }

                }

                //todo Delete From Table Where ID IN (1,2,3,4..)

                if (sId.Length - 1 > 0)

                {

                    sId.Remove(sId.Length - 1, 1);//移除最后一个逗号

                    //如果选定的是多行

                    if (sId.Length - 1 > 1)

                    {

                        sId.Insert(0, "DELETE FROM dbo.Commodity WHERE CommodityID in (");

                        sId.Insert(sId.Length, ")");

                    }

                    //如果选定的是单行

                    if (sId.Length - 1 == 1)

                    {

                        sId.Insert(0, "DELETE FROM dbo.Commodity WHERE CommodityID=");

                    }

                    DbHelperSQL.ExecuteSql(sId.ToString());

                    Response.Write("<script>alert('删除成功!')</script>");

                    Response.Redirect("CommodityManage.aspx");//刷新一下

                }

                else 

                {

                    Response.Write("<script>alert('请选择要删除的选项!')</script>");

                }

          }

(2)    通过下拉列表检索时首先需要进行数据绑定,直接选择数据源即可也可以通过SQL语句的形式

在加载程序中添加代码:

//给下拉列表第一项设置为全部

this.gvSort.DataBind();

this.gvSort.Items.Insert(0,"全部");

      然后在单击事件中调用绑定函数即可

///<summary>

        ///按下拉列表类目分类展示

        ///</summary>

        ///<paramname="sender"></param>

        ///<paramname="e"></param>

        protectedvoid gvSort_SelectedIndexChanged(object sender,
EventArgse)

        {

            BinData();//调用绑定函数即可

        }

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net 管理
相关文章推荐