您的位置:首页 > 运维架构

订餐系统对食物的维护

2016-02-20 21:42 483 查看
    现在的页面是这个样子的:

       


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

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

       


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

       


       


    页面核心代码:

    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"
onkeypress="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"
onkeyup="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"
onblur="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的空白,多学习,多进步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件