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

1.     商品管理列表页


要求:设计相关界面

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

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

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

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

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

1、          商品列表展示

添加一个GridView控件

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

然后绑定数据

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

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

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

///


        /// 绑定数据并显示
        ///

        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)   检索功能:可以直接调用绑定函数

        ///

        ///检索

        ///

        ///

        ///

        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"

///
        /// 删除
        ///

        ///
        ///
        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("");
                    Response.Redirect("CommodityManage.aspx");//刷新一下
                }
                else 
                {
                    Response.Write("");
                }
          }

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

在加载程序中添加代码:

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

this.gvSort.DataBind();

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

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

///

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

        ///

        ///

        ///

        protectedvoid gvSort_SelectedIndexChanged(object sender, EventArgse)

        {

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

        }

 

 

 

 

 

你可能感兴趣的:(ASP.NET,asp.net,管理)