你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 专家论坛
应用ASP.NET2005+C#设计B/S结构的企业订餐管理系统(二)
 

二、用户订餐

通过新型的Web控件RadioButtonListDropDownList绑定数据,进行选餐操作,可以显示对应的菜品图片。应用新型的GridView控件实时显示已订餐信息,并在其内部嵌入了删除功能。利用AJAX技术的ScriptManagerUpdatePanel,实现无闪局部刷新,使用GridView显示订餐数据时,不必整个网页提交刷新,进而可以使用Timer定时控件实现自动刷新记录。

 

1.应用新型的RadioButtonListDropDownList数据控件和RequiredFieldValidatorRangeValidator验证控件实现选餐操作。

 

HTML语言:定义上述三种Web控件。

<asp:RadioButtonList ID="rdlDinnerClass" runat="server" DataSourceID="AccessDataSource1"

                        DataTextField="class_rmk" DataValueField="dinner_class" RepeatDirection="Horizontal" Width="166px" AutoPostBack="True" Font-Size="Medium" OnSelectedIndexChanged="rdlDinnerClass_SelectedIndexChanged" >

                    </asp:RadioButtonList>

                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="rdlDinnerClass"

                        ErrorMessage="民族不能为空"></asp:RequiredFieldValidator>

 

<asp:DropDownList ID="ddlDinnerId" runat="server" Font-Size="Medium" Width="166px" AutoPostBack="True" OnSelectedIndexChanged="ddlDinnerId_SelectedIndexChanged" >

                    </asp:DropDownList>

                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="ddlDinnerId"

                        ErrorMessage="菜名不能为空"></asp:RequiredFieldValidator>

<asp:TextBox ID="txtDinnerCnt" runat="server" Width="66px" Font-Size="Medium"></asp:TextBox>

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtDinnerCnt" ErrorMessage="请输入合法数值" MaximumValue="99"MinimumValue="1"SetFocusOnError="True" Type="Integer"Width="113px">

</asp:RangeValidator>

<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtDinnerCnt"                        ErrorMessage="数量不能为空" Width="120px" SetFocusOnError="True"></asp:RequiredFieldValidator></td>

 

C#语句:

protected void rdlDinnerClass_SelectedIndexChanged(object sender, EventArgs e)  //选定民族

    {   string str1 = this.rdlDinnerClass.SelectedValue;

        //连接数据库

        OleDbConnection Conn = new OleDbConnection(connStr);

        Conn.Open();

        string strSql = "select * from dinner_info where dinner_class='" + str1 + "'";

 

        //结果集 对象

        OleDbDataAdapter rs = new OleDbDataAdapter(strSql, Conn);

        //集合

        DataSet ds = new DataSet();

        //rs给了ds

        rs.Fill(ds);

        //动态绑定dropdownlist控件

        ddlDinnerId.DataSource = ds.Tables[0].DefaultView;

        ddlDinnerId.DataTextField ="dinner_rmk";

        ddlDinnerId.DataValueField = "dinner_id";

        ddlDinnerId.DataBind();

        Conn.Close();

       

        //赋值给dinnerId控件

        ddlDinnerId.SelectedIndex  = 0;

        string str2 = this.ddlDinnerId.SelectedValue;

//显示对应的图片

        this.imgDinner.ImageUrl = "~/bmp/" + str1 + str2 + ".jpg";

    }

 

    protected void ddlDinnerId_SelectedIndexChanged(object sender, EventArgs e)  //选定餐名

    {    string str1 = this.rdlDinnerClass.SelectedValue;

        string str2 = this.ddlDinnerId.SelectedValue;

//显示对应的图片

        this.imgDinner.ImageUrl = "~/bmp/" + str1+str2 +".jpg";

    }

 

2.应用GridView控件显示当前用户的所有订餐信息,控件嵌入了删除功能,并且,页脚能显示订餐的合计量。

HTML语言:定义GridView控件的数据列,加入了一列按钮“删除”,并提示用户确认执行。

        <asp:GridView ID="gvChoice" runat="server" AutoGenerateColumns="False" OnRowCommand="gvChoice_RowCommand" OnRowDataBound="gvChoice_RowDataBound" CellPadding="4"

            ForeColor="Black" GridLines="None" Width="549px" EmptyDataText="没有任何数据可以显示。" ShowFooter="True">

            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />

            <Columns>

                <asp:BoundField DataField="ID" HeaderText="ID" />

                <asp:BoundField DataField="dinner_rmk" HeaderText="餐名" />

                <asp:BoundField DataField="dinner_cnt" HeaderText="数量" >

                    <ItemStyle HorizontalAlign="Right" />

                </asp:BoundField>

                <asp:BoundField DataField="class_rmk" HeaderText="民族" />

                <asp:BoundField DataField="rec_tim" HeaderText="时间" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" HtmlEncode="False"  />

                <asp:BoundField DataField="dinner_status" HeaderText="状态" >

                    <ItemStyle Font-Bold="True" />

                </asp:BoundField>

//删除确认提示功能

                <asp:ButtonField CommandName="Del" HeaderText="功能" Text="&lt;div id=&quot;de&quot; onclick=&quot;JavaScript:return confirm('确定删除吗?')&quot;&gt;删除&lt;/div&gt; " />

                <asp:BoundField DataField="dinner_memo" HeaderText="备注" />

            </Columns>

            <RowStyle BackColor="#EFF3FB" />

            <EditRowStyle BackColor="#2461BF" />

            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />

            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />

            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />

            <AlternatingRowStyle BackColor="White" />

        </asp:GridView>

 

C#语句:

    protected void gvChoice_RowCommand(object sender, GridViewCommandEventArgs e)  //内嵌的删除功能

    {

        //取得行的索引号

        int idx = Convert.ToInt32(e.CommandArgument);

        GridViewRow selectedRow = gvChoice.Rows[idx];

        //取得该行的ID

        TableCell tbID = selectedRow.Cells[0];

       

        switch (e.CommandName)  //判断按钮功能

        {

            case "Del":

                string strID = tbID.Text;

                OleDbConnection Conn = new OleDbConnection(connStr);

                Conn.Open();

                string strSql = "delete from dinner_choice where dinner_status<>'01' and ID=" + strID;

                OleDbCommand cmd = new OleDbCommand(strSql, Conn);

                cmd.ExecuteNonQuery();

                Conn.Close();

            break;

        }

    }

 

   int cntTotal = 0;  //初始化累计值变量

    protected void gvChoice_RowDataBound(object sender, GridViewRowEventArgs e)

    {   //页脚的合计数

        if (e.Row.RowType == DataControlRowType.DataRow)  //累计订餐数量

        {cntTotal = cntTotal + Convert.ToInt32(e.Row.Cells[2].Text);

        }

        else if (e.Row.RowType == DataControlRowType.Footer)  //如果页脚,则显示

            e.Row.Cells[2].Text = "Total: " + cntTotal.ToString();

 

        //如果是绑定数据行,则行变色

        if (e.Row.RowType == DataControlRowType.DataRow)

        {   //鼠标经过时,行背景色变

            e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#80FFFF'");

            //鼠标移出时,行背景色恢复

            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

        }

    }

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089