订餐系统对食物的维护

    现在的页面是这个样子的:



       



    借用了永和收银系统的后台代码,实现了本页面的增删改,食物不多,索性去除了"查"


    页面实现了上下下拉框的联动,上面是何种菜系,下面就是哪个



       



     当点击编辑和删除时,效果图如下



       




       



    页面核心代码:


    gridview控件:



        <asp:GridView ID="gvFood" class="gv" runat="server" AutoGenerateColumns="False" OnRowEditing="gvFood_Editing"
            OnRowUpdating="gvFood_Updating" OnRowDeleting="gvFood_Deleting" OnRowCancelingEdit="gvFood_CancelingEdit"
            DataKeyNames="foodId" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None"
            BorderWidth="1px" CellPadding="3" AllowPaging="True" OnPageIndexChanging="gvFood_PageIndexChanging"
            OnSelectedIndexChanged="gvFood_SelectedIndexChanged" HorizontalAlign="Center"
            EmptyDataText="您好,没有您要查找的记录.">
            <FooterStyle BackColor="White" ForeColor="#000066" />
            <RowStyle ForeColor="#000066" HorizontalAlign="Center" />
            <PagerStyle HorizontalAlign="Center" />
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" HorizontalAlign="Center" />
            <AlternatingRowStyle BackColor="#F7F7F7" />
            <Columns>
                <asp:TemplateField HeaderText="食物ID">
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%#Bind("foodid") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="食物名称">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtFoodName" MaxLength="8" runat="server" Text='<%#Bind("foodName") %>' Width="120px"></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%#Bind("foodName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="食物价格">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtPrice" runat="server" Text='<%#Bind("price") %>' Width="90px"
                            οnkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;
        else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"
                            οnkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;
        if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"
                            οnblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;
        else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%#Bind("price") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="所属菜系">
                    <ItemTemplate>
                        <asp:Label ID="Label4" runat="server" Text='<%#Bind("foodTypeName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="编辑" ShowHeader="False">
                    <EditItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                            Text="更新"></asp:LinkButton>
                         <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                            Text="取消"></asp:LinkButton>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                            Text="编辑"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="删除" ShowHeader="False">
                    <ItemTemplate>
                        <asp:LinkButton ID="lbtnDelete" runat="server" CausesValidation="True" CommandName="Delete"
                            Text="删除" OnClientClick="return confirm('确定要删除吗?')"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>



    编辑菜名和价格代码:


        //编辑GridView,进入编辑状态
        protected void gvFood_Editing(object sender, GridViewEditEventArgs e)
        {
            gvFood.EditIndex = e.NewEditIndex;
            BindFoodOnlyFoodTypeId();
        }


        //取消编辑
        protected void gvFood_CancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvFood.EditIndex = -1;
            BindFoodOnlyFoodTypeId();
        }



        protected void gvFood_Updating(object sender, GridViewUpdateEventArgs e)
        {
            TxtFoodName.Text = "";
            TxtPrice.Text = "";
            Entity.Food m_Food = new Food();

            //食物ID,两次赋值,等号右边是一个东西
            m_Food.foodId = Convert.ToInt32(gvFood.DataKeys[e.RowIndex].Value.ToString().Trim());
            int foodId = Convert.ToInt32(gvFood.DataKeys[e.RowIndex].Value.ToString().Trim());

            //新食物名
            m_Food.foodName = ((TextBox)gvFood.Rows[e.RowIndex].Cells[0].FindControl("txtFoodName")).Text.ToString();

            //通过食物Id来查找对应的食物名称,如果更新时更新的是名称则对名称进行判断
            //如果不是改的名称,则进行更新
            DataTable FindDt = new DataTable();
            //SelectFoodByFoodId SFoodByid = new SelectFoodByFoodId();

            FindDt = mmbao.QueryFoodByFoodId(foodId);
            //旧食物名
            string FoodName = FindDt.Rows[0][1].ToString();
        
            int FoodTypeId = Convert.ToInt32(FindDt.Rows[0][4].ToString());
            //string FoodTypeId = FindDt.Rows[0]["foodTypeId"].ToString();
            //判断名称是否改变了
            if (m_Food.foodName != FoodName)
            {
                //菜名改变了就继续判断--
                //判断食物名称是否存在
                //Bll.IsExistFoodName m_IsExist = new Bll.IsExistFoodName();
                //bool Flag = m_IsExist.IsExistFoodName(m_Food.foodName);

                bool Flag = mmbao.IsExistsThisFood(m_Food.foodName,FoodTypeId);

                if (Flag == true)
                {
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('食物类型名称重复,请修改!');</script>");
                    return;
                }
            }

            if (m_Food.foodName.Trim() == "")
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('菜名不允许为空!');</script>");
                return;
            }

            string newPrice = ((TextBox)gvFood.Rows[e.RowIndex].Cells[0].FindControl("txtPrice")).Text.ToString();

            if (newPrice == "")
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('菜价格不允许为空!');</script>");
                return;
            }

            //新食物名
            string newfoodName = ((TextBox)gvFood.Rows[e.RowIndex].Cells[0].FindControl("txtFoodName")).Text.ToString();
            //新价格
            decimal afterPrice = Convert.ToDecimal(newPrice);

            Food updatefood = new Food();

            updatefood.foodName = newfoodName;
            updatefood.price = afterPrice;
            updatefood.foodId = foodId;

            bool flag = mmbao.updateFood(updatefood);

            if (true)
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('修改成功!');</script>");
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('修改失败,请联系管理员');</script>");
                return;
            }

            //更新完毕,取消更新
            gvFood.EditIndex = -1;
            BindFoodOnlyFoodTypeId();
        }



    代码编写理念是三层的数据传递,加上了一些BS编程的特点,并不难搞,因为有永和的支持,看永和的代码,填补了我初期学BS的空白,多学习,多进步



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值