02Modify.ashx(修改班级信息)

02Modify.html 修改

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>修改班级</title>
    <style type="text/css">
        #tbList {
            border:1px solid #0094ff;
            border-collapse:collapse;
            width:300px;
            margin:50px auto;
        }
        #tbList th,td{
            border:1px solid #0094ff;
            padding:5px;
        }
    </style>
</head>
<body>
    <form method="post" action="02Modify.ashx">
        <table id="tbList">
            <tr>
                <td>班级名称:</td>
                <td><input type="text" id="txtName" name="txtName" value="@{name}" /></td>
            </tr>
            <tr>
                <td>班级人数:</td>
                <td><input type="text" id="txtCount" name="txtCount" value="@{count}" /></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" value="确定" />
                    <input type="button" id="btnCancel" value="取消" onclick="window.location='01List.ashx'" />
                </td>
            </tr>
        </table>
        <input type="hidden" name="txtId" value="@{id}" />
    </form>
</body>
</html>

02Modify.ashx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;

namespace AspNetAshx
{
    /// <summary>
    /// 修改的 班级数据
    /// </summary>
    public class _02Modify : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            //重要:因为当前页面,有两个业务:
            //1.根据id展示要修改的数据(get请求)
            //2.是接受用户在表单中修改后的新的数据,并更新到数据库中(post请求)

            if (context.Request.HttpMethod.ToLower() == "get")//get过来,执行业务一
            {
                BusOne();//查询并生成 修改页面
            }
            else//post过来,执行业务二
            {
                DoModify();
            }
        }

        #region 1.0业务一、查询并生成 修改页面 -void BusOne()
        /// <summary>
        /// 查询并生成 修改页面
        /// </summary>
        void BusOne()
        {
            //1.获取 要修改的 班级id
            string strId = HttpContext.Current.Request.QueryString["id"];
            //2.验证 id 是否合法
            if (CommonHelper.IsNum(strId))//验证通过
            {
                //3.根据id 查询 要修改的 班级数据
                SqlDataReader dr = SqlHelper.ExcuteReader("select * from Classes where CId = " + strId);
                //if (dr.HasRows)
                //{
                //此处 不使用 while的原因是因为 我们根据id查询,肯定只有一行!
                if (dr.Read())//调用Read的时候就去数据库的 【查询结果集】 里 获取了一行数据
                {
                    //4.读取修改页面的模版
                    string strHtml = CommonHelper.GetFileContent("02Modify.html");
                    //5.用 数据库中读取到的数据 替换 掉模版里的 3个占位符
                    strHtml = strHtml.Replace("@{name}", dr["CName"].ToString())//将 班级名 替换到 班级名 文本框的value中
                                     .Replace("@{count}", dr["CCount"].ToString())//将 班级人数 替换到 班级人数 文本框的value中
                                     .Replace("@{id}", dr["CId"].ToString());//将 班级id 替换到 班级id 隐藏域的value中
                    //6.将生成的修改页面 html 返回给浏览器
                    HttpContext.Current.Response.Write(strHtml);
                }
                //关闭 读取器,自动关闭连接对象
                dr.Close();
                //}
            }
            else
            {//4.验证失败 
                //通过输出js 先让浏览器用户看到错误消息,然后再直接通过js控制浏览器跳转到 列表页面(再次请求服务器的列表页面)
                HttpContext.Current.Response.Write("<script>alert('您的参数有误!您什么意思~~!');window.location='01List.ashx';</script>");
            }
        } 
        #endregion

        #region 2.0 业务二、执行修改 -void DoModify()
        /// <summary>
        /// 业务二、执行修改
        /// </summary>
        void DoModify()
        {
            //1.获取用户表单post提交的数据
            string strName = HttpContext.Current.Request.Form["txtName"].Trim();
            string strCount = HttpContext.Current.Request.Form["txtCount"];
            string strId = HttpContext.Current.Request.Form["txtId"];
            //2.验证数据
            if (string.IsNullOrEmpty(strName) || !CommonHelper.IsNum(strCount) || !CommonHelper.IsNum(strId))
            {
                CommonHelper.WriteJs("对不起,您输入的数据格式错误~请仔细检查~~", "02Modify.ashx?id=" + strId);
            }
            else
            {
                //3.更新到数据库中
                SqlParameter[] paras = { 
                                   new SqlParameter("Cname",strName),
                                   new SqlParameter("CCount",strCount),
                                   new SqlParameter("Cid",strId)
                                   };
                int res = SqlHelper.ExcuteNoneQuery("update Classes set CName=@Cname,CCount=@CCount where CId =@Cid", paras);
                if (res > 0)
                { //删除成功
                    CommonHelper.WriteJs("修改成功~!", "01List.ashx");
                }
                else
                { //删除失败
                    CommonHelper.WriteJs("修改失败~!如果您是美女,请联系管理员~~~qq:111111", "02Modify.ashx?id=" + strId);
                }
            }
        }
        #endregion


        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

posted @ 2016-01-06 15:41  狼牙者.net  阅读(417)  评论(0编辑  收藏  举报