相对于前篇总结来说,中篇来得晚了很多,大概都一个多月过去了由于牛腩视频已经看完,并跟着敲了下来,故而在这里,我就总结一下视频后40讲的大概知识点。

在前期框架搭建好之后,中期也就是针对每个页面设计符合本页面特色的样式了。在视频中的名称是整合各个页面。

登陆页面

首先,添加验证控件RequiredFieldValidator,从而通过验证用户输入情况,做出相应事件回应。

然后还从安全方便考虑,将密码进行转码,从而对密码进行一定的隐藏。例如将密码转码为MD5形式:FormsAuthentication.HashPasswordForStoringInConfigFile(pwd,"MD5")。

类别管理界面

首先学习到的是关于从一个页面跳转到另一个界面。一种方法是咱们已经熟知的超链接形式,另一种形式则是Response.Redirect("Login.aspx")。

这里学到的最主要的是关于Javascript框架的学习,通常asp.net设计是不能针对表实现事件处理的。而这需要借助javascript进行设计。对于这一方面,我还没有学习透入,也不能讲出个所以然来,只能提供代码交流了

$(function () {//相当于在页面中的body标签中加上onload事件$(".caname").click(function () { //给页面中有caname类的标签加上click函数 var objTD = $(objTD);//更改格式时需要保存原有内容var oldText = $trim($(objTD).text());var input = $("<input type='text' value='" + oldText +"' />");//文本框的HTML$(objTD).html(input);//当前td的内容变为文本框//设置文本框的点击事件失效input.click(function () {return false;});//设置文本框的样式input.css("border-width", 0);//边框宽度为0input.height($(objTD).height());//文本框高度为当前td表格高度input.width($(objTD).width());//文本框高度为当前td表格宽度input.css("font-size", "14px"); //文本框内容字体大小input.css("text-align", "center");//文本居中input.trigger("focus").trigger("select");//全选(先触发焦点,然后全选)//文本框失去焦点时重新变为文本input.blur(function () {var newText = $(this).val();var input_blur = $(this);//修改后的名称//当老的类别名称与修改后的类别名称不同时才进行数据的提交操作if (oldText != newText) {//获取该类别名所对应的序号var caid = $trim(objTD.prev().text());//AJAX异步更改数据库var url = "../handler/ChangeCaName.ashx?caname=" + encodeURI(encordeURI(newText)) +"&caid=" + caid + "&t=" + newDate().getTime();//getTime()获取毫秒,防止数据缓存干扰;encordeURI防止中文转码出现问题,进行二次转码$.get(url, function (data) {if (data =="false") {//alert("类别修改失败,请检查是否类别名称重复");$("#test").text("类别修改失败,请检查是否类别名称重复");input_blur.trigger("focus").trigger("select");//文本框全选}else {$("#test").text("");objTD.html(newText);}});}else {//前后文本一致,把文本框编程标签objTD.html(newText);}});//在文本框中按下键盘某键input.keydown(function (event) {var jianzi = event.keyCode;var input_keydown = $(this);switch (jianzi) {case 13: //按下回车键,把修改后的值提交到数据库中var newText =input_keydown.val();//修改后的名称//当老的类别名称与修改后的类别名称不同时才进行数据的提交操作if (oldText != newText) {//获取该类别名所对应的序号var caid =$trim(objTD.prev().text());//AJAX异步更改数据库var url ="../handler/ChangeCaName.ashx?caname=" +encodeURI(encordeURI(newText)) + "&caid=" + caid +"&t=" + new Date().getTime();//getTime()获取毫秒,防止数据缓存干扰;encordeURI防止中文转码出现问题,进行二次转码$.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;}})});
});//屏蔽回车键
$(document).keydown(function (event) {switch(event.keyCode) {case 13:return false;}
})

其实这一部分是相当于CSS的一部分,只不过在CSS里面是不能针对事件进行处理的,故而需要其他方式进行实现。

新闻管理页

这一部分学习AJAX控件的使用,AJAX是AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

这里用到的是UpdatePanel控件,通常与ScriptManager控件联合使用,ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果。其中的UpdatePanel就是设置页面中异步局部更新区域,它必须依赖于ScriptManager存在,因为ScriptManger控件提供了客户端脚本生成与管理UpdatePanel的功能。

           <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate><table class="m_table"><tr><th class="xuhao">序号</th><th>标题</th><th class="del">修改</th><th class="del">删除</th></tr><asp:Repeater ID="repNews" runat="server"><ItemTemplate><tr><td><%# Eval("id") %></td><td><a href='../newscontent.aspx?newsid=<%# Eval ("id") %>' target="_blank"><%# Eval("title") %></a></td><td><a href='modnews.aspx?newsid=<%#Eval("id") %>' target="_blank">修改</a></td><td><asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('删除新闻会连同其下评论一起删除,是否删除')"OnClick="lbtn_Click" CommandArgument='<%# Eval("id") %>' runat="server">删除</asp:LinkButton></td></tr></ItemTemplate></asp:Repeater></table></ContentTemplate></asp:UpdatePanel>

其次,是关于repeater控件的ItemDataBound事件的学习,这里首先先了解repeater控件:Repeater 控件用于显示重复的项目列表,这些项目被限制在该控件。Repeater 控件可被绑定到数据库表、XML 文件或者其他项目列表。repeater控件的ItemDataBound事件在项被绑定数据后触发。

最后是针对控件的显示和隐藏问题,例如如果希望将某个控件隐藏,则可以这样:((控件类名)e.Item.FindControl("控件名称")).Visible= false。

添加新闻页

这一个主要是学习freeTextBox控件的使用,这个控件是设计好的,可以自行下载,然后进行引用就可以了!

还有值针对下拉列表框DropDownList的学习:

         DropDownList.DataTextField= "name";//获取文本内容的数据源字段      DropDownList.DataValueField= "id";//获取各列表项提供值的数据源字段

出错页

针对系统可能存在的其他错误(不论能解决与否),都可以进行异常处理,然后超链接到页面跳转到出错页!

最后将系统发布出去就基本上可以算是一个小型的新闻发布系统啦!!!

【Dongle】【Web】牛腩新闻发布系统之中篇相关推荐

  1. 【牛腩新闻发布系统】开发前的准备01

    前言: 牛腩新闻发布系统已经完成了很久了,在完成的过程中,一步步按照视频的步骤在走,中间探索了一下注释部分是怎么出来的.整个学习过程紧凑而且有序,中间也拖沓了两周有开始接着完成,接下来是整个过程中一些 ...

  2. 【牛腩新闻发布系统之handler】

    前言: 敲着牛腩已经有很长时间了,一路走来,没有顺顺利利的!正是因为这样,我才感觉自己有了收获!也正是错误的调试,对牛腩新闻发布系统更加了解了!毕竟,错误的调试是一个经历并成长的过程,今天,主要来总结 ...

  3. 牛腩新闻发布系统——制作母板页

    以牛腩新闻发布系统为例,复述Web开发母版页制作: 单击右键--新建项--选择母版页.命名--确定. 这个母版页中包含三部分不变的内容:top(图片).Search(搜索).footer(底部版权) ...

  4. 牛腩新闻发布系统——后台前台整合技术

    在牛腩新闻发布系统中用到了一些技术我就来总结下 一.鼠标超链接设置 一开始就用到了鼠标超链接的设置.尾部样式的设置,这个东西每个网站都要用到非常长用所以可以写下来积累积累. 举个例子 如图:鼠标没有移 ...

  5. 牛腩新闻发布系统——触发器使用

    触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行.触发器经常 ...

  6. 基于Java Web的新闻发布系统

    一.项目介绍 新闻发布系统是发布学校或者企业的信息的系统,支持注册,登录,发布新闻,管理新闻等,角色分为:普通用户和管理员用户,对10张数据库表进行增删改查.适合毕业设计.课程设计.大作业等. 二.技 ...

  7. 牛腩新闻发布系统—如何发布

    [前言] 牛腩项目的学习已经接近尾声了,到了该发布的时候了,当时看完牛腩老师的发布系统,并没有很懂,就想着先往下走,当看了Asp.Net第一集的时候,就突然明白怎么回事了,其实也没有那么难. [内容] ...

  8. 牛腩新闻发布系统:Web窗体无法显示所应用的样式表

    前言 在敲牛腩的时候,我们需要建立一个样式表,使得相似功能窗体可以应用同一个样式表. 一.问题描述与解决方案 在编辑好样式表并应用于Web窗体之后,网页无法显示所应用的样式. 样式表: #top, # ...

  9. 【牛腩新闻发布系统】系统发布06

    前言: BS系统的发布可以通过VS自带的工具实现,也可以通过windows系统自带的IIS进行发布,我用的第二种方法发布的. 使用的方法: https://blog.csdn.net/j1553341 ...

最新文章

  1. 为Linux上的Tomcat安装apr支持
  2. 详细讲解SQL Server索引的性能问题
  3. 减少模型方差的方法借鉴
  4. 【Linux入门学习之】Linux关机命令总结
  5. vs code没有代码提示
  6. GirlsInAI 近期计划,求扩散,欢迎大家转起来!
  7. linux 使用ssh-keygen生成ssh公钥和私钥
  8. php文件加锁 lock_sh ,lock_ex
  9. FTP文件上传Java代码实操
  10. 【老生谈算法】Matlab中插值函数汇总和使用说明——插值函数
  11. win8metro应用磁贴背景修改说明
  12. flutter项目引入iconfont【阿里巴巴图标】的图标
  13. 想要报考华为技术认证,你一定要了解这些
  14. php 搜索关键字,PHP获取搜索关键字有关问题_PHP教程
  15. 个人支付收款接口现状剖析
  16. Spark高效数据分析03、Spark SQL
  17. 51单片机实战教程基础硬件篇(二 电子元件原理图库设计教程)
  18. 求助:绿联USB2.0对拷线连接不上
  19. 讲解高防服务器抵御CC攻击的相关配置
  20. sqlite多行插入_sqlite3-批量insert插入多条信息-提高效率的办法 | 学步园

热门文章

  1. 老虎证券登陆纳斯达克,CEO巫天华:创业要恪守自己的能力圈...
  2. LINUX 查看和修改文件系统的block的大小
  3. 机器学习基础知识、与图像处理等技术的关系
  4. 《The C Programming Language》答案(第一章)
  5. [英文歌曲]斗士:Fighter
  6. 计算机应用etf基金代码,国泰中证计算机主题ETF联接C
  7. 《世界上最远的距离》——泰戈尔
  8. 使用百度定位无法初始化问题
  9. 托管代码和非托管代码
  10. 微信or支付宝交易限额