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

4.利用ShowModalDialog()函数弹出页面窗口,选择备注信息。

HTML语言:

<head runat="server">

    <title>弹出窗体</title>

    <base target="_self"></base>

</head>

 

<body>

    <form id="form1" runat="server" >

 

    <div>

        <table style="width: 256px">

            <tr>

                <td style="height: 2px" colspan="2">

                <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/dinner.mdb"

                        SelectCommand="SELECT [dinner_memo], [memo_rmk] FROM [dinner_memo] ORDER BY [dinner_memo]">

                    </asp:AccessDataSource>

                </td>

            </tr>

        </table>

        <br />

        <table style="width: 272px">

            <tr>

                <td style="width: 18px">

                </td>

                <td style="width: 28px">

                </td>

                <td style="width: 28px">

                </td>

            </tr>

            <tr>

                <td style="width: 18px; height: 9px">

                </td>

                <td style="width: 28px; height: 9px">

                    <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="Medium" Text="请选择原因"

                        Width="89px"></asp:Label></td>

                <td style="width: 28px; height: 9px">

                    <asp:DropDownList ID="ddlMemoTxt" runat="server" Font-Size="Medium" Width="141px" DataSourceID="AccessDataSource1" DataTextField="memo_rmk" DataValueField="memo_rmk">

                    </asp:DropDownList></td>

            </tr>

            <tr>

                <td align="left" style="width: 18px; height: 19px">

                </td>

                <td align="left" style="width: 28px; height: 19px">

                </td>

                <td align="left" style="width: 28px; height: 19px">

                </td>

            </tr>

            <tr>

                <td align="left" style="width: 18px">

                </td>

                <td align="left" style="width: 28px">

        <asp:Button ID="btSubmit" runat="server" OnClick="btSubmit_Click" Text="确定" Font-Bold="True" Font-Size="Medium" /></td>

                <td align="left" style="width: 28px">

                    <asp:Button ID="btExit" runat="server"

                        Font-Bold="True" Font-Size="Medium" OnClick="btExit_Click" Text="取消" /></td>

            </tr>

        </table>

   

    </div>

        <br />

    </form>

</body>

 

C#语句:

//弹出窗体函数

protected void showDialog()

    {

        StringBuilder s = new StringBuilder();

        s.Append("<script language=javascript>" + "\n");

        s.Append("var a=window.showModalDialog('submitBX.aspx',window,'dialogHeight:200px;dialogWidth:290px;edge:Raised;center:Yes;help:Yes;resizable:No;scroll:no;status:No;');" + "\n");   //弹出窗口

        s.Append("if(a!=null)" + "\n");

        s.Append("document.all('txtDialog').value=a;" + "\n");   //返回值填充

        s.Append("</script>");

        Type cstype = this.GetType();

        ClientScriptManager cs = Page.ClientScript;

        string sname = "showD";

        if (!cs.IsStartupScriptRegistered(cstype, sname))

            cs.RegisterStartupScript(cstype, sname, s.ToString());  //执行命令集

    }

 

//弹出的窗体返回值

protected void returnDX()

    {

        StringBuilder s = new StringBuilder();

        s.Append("<script language=javascript>" + "\n");

        s.Append("window.returnValue='" + this.GetSelectValue() + "';" + "\n");   //获得返回值

        s.Append("window.close();" + "\n");

        s.Append("</script>");

        Type cstype = this.GetType();

        ClientScriptManager cs = Page.ClientScript;

        string csname = "returnD";

        if (!cs.IsStartupScriptRegistered(cstype, csname))

            cs.RegisterStartupScript(cstype, csname, s.ToString());  //执行命令集

    }

    private string GetSelectValue()

    {  string rv = this.ddlMemoTxt.SelectedValue;  //获得选定的备注内容

        return rv;

}

5.利用AJAX技术的Timer控件实时显示当前时间,类似电子秒表。

HTML语言

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

       <asp:Label ID="Label7" runat="server" Font-Bold="True" ForeColor="Red" Text="当前时间:" Width="95px"></asp:Label>

<asp:UpdatePanel ID="UpdatePanel2" runat="server">

<ContentTemplate>

<asp:Label ID="lblTim" runat="server" Width="392px" Font-Bold="True" ForeColor="Green" Font-Size="Medium"></asp:Label>

</ContentTemplate>

<Triggers>                            <asp:AsyncPostBackTrigger ControlID="timShow" EventName="Tick"/>                                                    </Triggers>                    </asp:UpdatePanel>

<asp:Timer ID="timShow" runat="server" OnTick="timShow_Tick" Interval="1000" ></asp:Timer>

 

C#语句:

protected void timShow_Tick(object sender, EventArgs e)  //定时显示日期和时间

    {

        lblTim.Text = System.DateTime.Now.GetDateTimeFormats('T')[0].ToString() + "  " + System.DateTime.Now.GetDateTimeFormats('D')[3].ToString();

    }

 

四、订餐汇总

通过C#语言动态改变GridView控件的显示列数,使含有不同字段数的数据源可以填充到同一个GridView控件,简化了界面设计,程序更为灵活。可以分部门和分餐名统计总量,也可统计每个部门每一种餐的订餐量。

 

1.通过网页传递参数,使汇总界面可以统计当前表和历史表,并对当前表“完结”操作。

C#语句:

//审批页面调出“汇总”页面

protected void btSum_Click(object sender, EventArgs e)

    {   string strTab;

        if (this.rdlTab.SelectedValue == "DAY")

            strTab = "dinner_choice";

        else

            strTab = "dinner_choice_bak";

        Response.Redirect("summary.aspx?strTab="+ strTab);  //将表名作为参数传递给汇总页面

}

 

//汇总页面启动

protected void Page_Load(object sender, EventArgs e)

    {

        if (Session["userID"] == null)  //session过期,则返回登录页面

            Response.Redirect("logon.aspx");

        if (Request.QueryString["strTab"]=="dinner_choice_bak")  //获得网页传递的表名参数

            btOver.Enabled =false;  //如果是查询历史记录,“完结”功能被屏蔽

        Response.Write("<font size=4 color='red'><b>您好!<B><font size=5 color='Green'>" + Session["userNam"] + "</font><font size=4 color='red'>    所属部门:" + Session["deptNam"] + "</font>");

        if (!this.IsPostBack)  //若页面首次开启,为“完结”按钮加入确认提示

        {   BindQuery();

            this.btOver.Attributes.Add("onclick", "javascript: return confirm('确定要清空所有记录,并将“已确认”保存为历史记录吗?此操作不能恢复,请慎重!!!');");

        }

    }

2.通过“完结”操作,将所有“已确认”记录移入到历史表——dinner_choice_bak表保存备查,并清空当前表——dinner_choice

C#语句:

//页面首次打开,为“完结”按钮加入确认提示

if (!this.IsPostBack) 

        {

            this.btOver.Attributes.Add("onclick", "javascript: return confirm('确定要清空所有记录,并将“已确认”保存为历史记录吗?此操作不能恢复,请慎重!!!');");

        }

protected void DataBak()  //数据备份过程

    {

        OleDbConnection Conn = new OleDbConnection(connStr);  //连接数据库

        Conn.Open();

        string strSql = "insert into dinner_choice_bak select * from dinner_choice where dinner_status='01'";

        OleDbCommand cmd = new OleDbCommand(strSql, Conn);  //转移所有“已确认”记录

        cmd.ExecuteNonQuery();

        strSql = "delete from dinner_choice";

        OleDbCommand cmd = new OleDbCommand(strSql, Conn);  //清空当前表

        cmd.ExecuteNonQuery();

        Conn.Close();

}

 

五、结语

综上所述,ASP.NET2.0编程技术为我们提供了强大的数据处理能力和广阔的探索空间,还有很多的Web控件和网页访问技术需要深入学习和开发。
  推荐精品文章

·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