用了半个月的时间做完了这个新闻发布系统。从写文档到C#开发后台再到ASP.NET开发前台,通过这样一个艰辛的历程,我对B/S有了初步的了解。这个系统看着简单,就发现它用到了所有我们B/S项目中我们需要学习的内容,真是麻雀虽小五脏俱全。佩服牛老师那“绝对不放过1PX”的精神!!!
如下图一是我的概述总结。
[图一 牛腩总结]
<html> <head> <title> 静夜思 </title> </head> <body> <!--这个是一首诗--> <center> <h2><font color="green">静夜思</font></h2> <b>作者:李白</b> <hr color="blue"> <p> <b><i><font color="blue" size="13">窗前明月光,疑是地上霜。<br> 抬头望明月,低头思故乡。</font></b></i> </center> </body> </html>
$(function () { // 相当于在页面中的body标签加上onload事件 $(".caname").click(function () { // 给页面中有caname类的标签加上click函数 var objTD = $(this); var oldText = $.trim(objTD.text()); // 保存老的类别名称 var input = $("<input type='text' value='" + oldText + "' />"); // 文本框的HTML代码 objTD.html(input); // 当前td的内容变为文本框 // 设置文本框的点击事件失效 input.click(function () { return false; }); }); });
//在文本框中按下键盘某键 input.keydown(function (event) { var jianzhi = event.keyCode; var input_keydown = $(this); switch (jianzhi) { case 13: //按下回车键,提交数据 var newText = $(input_keydown).val();//修改后的名称 //当老名与新名不同才进行提交 if (oldText != newText) { //获取该类别所对应的序号 var caid = $.trim(objTD.prev().text()); //AJAX异步更改数据库 var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encodeURI(newText)) + "&caid=" + caid + "&t=" + new Date().getTime(); $.get(url, function (data) { if (data == "false") { $("#test").text("类别修改失败,请查看是否类别名称有问题"); input_keydown.trigger("focus").trigger("select"); // 全选 } else { $("#test").text(""); objTD.html(newText); } }); } else { //前后文本一致,把文本框变成标签 objTD.html(newText); } break; case 27: //按下esc,取消修改,把文本框变成标签 $("#test").text(""); objTD.html(oldText); break; } });
<%@ WebHandler Language="C#" Class="ChangeCaName" %> using System; using System.Web; using BLL; using Model; public class ChangeCaName : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string caid = context.Request.QueryString["caid"]; string caname = context.Server.UrlDecode( context.Request.QueryString["caname"]); //是否重名 if(new CategoryManager().IsExists(caname)) { context.Response.Write("false"); return; } //更数据库类别名称 Category ca = new Category(caid, caname); bool b= new CategoryManager().Update(ca); if (b) { context.Response.Write("true"); } else { context.Response.Write("false"); } } public bool IsReusable { get { return false; } } }