欢迎您的来访!有源码,好建站(www.codehy.com)源码海洋源码网为您提供快速建站平台.
当前位置: 首页 > 行业资讯 > c# .net 资料 >

【牛腩新闻发布系统】——技术总结

时间:2019-07-08 16:14来源:未知 作者:源码海洋 点击:
首先,后台代码是没有什么错误的,因为都是根据分层实现的,这里一直在锻炼当中,自然也就熟悉了。 接下来总结一下整体自认为学到的新知识。 首页的制作和它与后台的整合中出现的一些实现较为费劲的地方。 1、制作母版页 为了减少在网页设计时出现的变一页而

首先,后台代码是没有什么错误的,因为都是根据分层实现的,这里一直在锻炼当中,自然也就熟悉了。

接下来总结一下整体自认为学到的新知识。

        首页的制作和它与后台的整合中出现的一些实现较为费劲的地方。       

                         

1、制作母版页

        为了减少在网页设计时出现的变一页而懂全站的问题,我们使用了母版页,这样,就不必每个页面都去更新,修改一次,所有的网页都会改变,做到了一劳永逸。例如在牛腩新闻发布系统中前台页面画红线的地方。

        这样就不存在代码冗余,牵一发而动全身的现象了。

                 

2、表格

(1)Repeater:不会生成多余的代码

          在项模板中直接写上需要重复的语句,界面控件绑定D层查询到的DataTable里的数据。

    <span style="font-size:14px;"> <asp:Repeater ID="repCategory" runat="server">
          <ItemTemplate >  <%--项模板-- %>
                <li><a href ='list.aspx?caid=<%# Eval("id") %>'><%# Eval("name") %></a></li>
          </ItemTemplate>
     </asp:Repeater>   </span>


(2)GridView:这是一个功能最强大的table控件,但是灵活性最差,会生成很多的多余代码。

             这是绑定热点新闻使用的GridView控件

    <span style="font-size:18px;"> </span><span style="font-size:14px;"><!--热点新闻-->
            <div id="hotnews" class ="commonfrm">
                <h4 >热点新闻</h4>
                <asp:GridView ID="gvHotNews" runat="server" AutoGenerateColumns ="False" BorderWidth ="0" GridLines="None" >
                    <Columns>
                        <asp:TemplateField HeaderText="所属类别" HeaderStyle-CssClass ="th_category " >                       
                            <ItemTemplate>
                                <a class ="td_category " href ='list.aspx?caid=<%#Eval("caId") %>'>[<%# Eval("name") %>]</a>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="新闻标题">                       
                            <ItemTemplate>
                                <a href ='contentnews.aspx?newsid=<%#Eval ("id") %>'  target ="_blank" title ='<%# Eval("title") %>' ><%# StringTruncat(Eval("title").ToString(),18,"...") %></a>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="发布时间" HeaderStyle-CssClass ="th_time " ItemStyle-CssClass ="td_time ">                      
                            <ItemTemplate>
                                <asp:Label ID="Label3" runat="server" Text='<%# Bind("createtime") %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView></span>

  

扩展:

       GridView、DataList、Repeater控件使用

       GridView是很智能的,直接就提供了很多的表现方式,是三者中最复杂也是最占资源的一个,常用于列表数据处理的时候,但是最好是不要太大量的数据;

       Datalist:实现重复项显示的功能,里面的内容自定义程度高,有点类似于在SAP中写循环语句来实现自动生成数据列表,是线性的处理。直接输出;数据量很大的时候可以考虑用这个。

       Repeater:介于两者之间。

      其实,使用哪个控件要根据实际情况、数据量的大小、所占的内存而定,当然我们所做的程序要是内存小、功能强大的方向努力,所以在选择控件的时候要慎重。


3、.NET截取指定长度汉字超出部分以“...”代替

       这个是在新闻列表页的时候,当表格中新闻标题太长时,在一定的空间内是不可能完全显示的,但是又想着当鼠标移上去的时候可以全部显示出来,这样就用到了这个截取指定长度超出部分。然后鼠标移上去又全部显示。

       首先,截取指定长度汉字。

    <span style="font-size:14px;">        /// <summary>
            /// 将指定字符串按指定长度进行剪切
            /// </summary>
            /// <param name="oldStr">需要截断的字符串</param>
            /// <param name="maxLength">字符串的最大长度</param>
            /// <param name="endWith">超过长度的后缀</param>
            /// <returns>如果超过长度,返回截断后的新字符串加上后缀,否则,返回原字符串</returns>
            public static string StringTruncat(string oldStr, int maxLength, string endWith)
            {
                if (string.IsNullOrEmpty(oldStr))  //原字符创不能为空
                    return oldStr + endWith;
                if (maxLength < 1)
                    throw new Exception("返回的字符串长度必须大于【0】");
                if (oldStr.Length > maxLength)
                {
                    string strTmp = oldStr.Substring(0, maxLength);
                    if (string.IsNullOrEmpty(endWith))
                        return strTmp;
                    else
                        return strTmp + endWith;
                }
                return oldStr;
            }</span><span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;"> </span>

            

<a>标签中间是截取汉字的使用

<span style="font-size:14px;"><a href ='contentnews.aspx?newsid=<%#Eval("id") %>'  target ="_blank" ><%# StringTruncat(Eval("title").ToString(),18,"...") %></a></span>


              在<a>标签中的title属性设置鼠标移上去后,长度等于没有截取之前的新闻标题

<span style="font-size:14px;"><a href ='contentnews.aspx?newsid=<%#Eval("id") %>'  target ="_blank" title ='<%# Eval("title") %>' ><%# StringTruncat(Eval("title").ToString(),18,"...") %></a></span>


4、.NET中获取字符串的MD5码

      登录页面,需要输入密码,但是

 (1)导入命名空间

using System.Web.Security; 


 (2)获取MD5码

pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5");


(3)同时需要写一个登录逻辑

这时就需要把获取到的MD5代码转换成我们熟知的密码

    if ("niunan" == name && "E10ADC3949BA59ABBE56E057F20F883E" ==  pwd)
       {
           flag = true;
       }
    return flag;


5、Bind和Eval的区别

       绑定表达式

    <span style="font-size:14px;"><%# Eval("字段名") %>
    <%# Bind("字段名") %></span>

区别:

        1、Eval是只读数据,Bind是可更新的。

        2、当对此表达式操作时候,必须用Eval,如,<%# Eval("字段名").ToString().Trim() %>

        3、若GridView中绑定列里面,设置内容格式DataFormateString={0:d},则必须把属性HtmlCode设置为false,否则无法起作用。

        Eval  单向绑定:数据是只读的

        Bind:双向绑定:数据可以更改,并返回服务器端,服务器可以处理更改后的数据,如存入数据库。

    

6、有关Session

       Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。

       在Web中,Session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。

       当一个Session第一次被启用时,一个唯一额标识被存储于本地的cookie中。

       存储需要在整个用户会话过程中保持其状态的信息,例如登录信息或用户浏览Web应用程序是需要的其他信息。Session的作用就是它在Web服务器上保持用户的状态信息供任何时间从任何页访问。因为浏览器不需要存储任何这种信息,所以可以使用任何李兰器。

       这是我们可以通过取得Session里的值来判断登录条件。如:判断登录用户是否为niunan

    <span style="font-size:14px;">if (Session["admin"] !=null && Session["admin"].ToString() == "niunan")
       {//管理员已登陆
            if (!Page .IsPostBack )
              {
              }
       }</span>


7、路径问题

      这是在做网页一直贯穿的问题,图片的加载就要涉及到路径问题。

(1)相对路径

当前所在目录:""

    <span style="font-size:14px;"><img src="niunanlogo.jpg" />或
    <img src="./niunanlogo.jpg" /></span>

      上一级目录:"../"

<span style="font-size:14px;"><img src="../images/niunanlogo.jpg" alt ="LOGO" class ="login_logo" /></span>

      上一级的上一级:"../../"

<span style="font-size:14px;"><img src="../../images/niunanlogo.jpg" alt ="LOGO" class ="login_logo" /></span>

(2)绝对路径

        绝对路径就是具体的磁盘位置等。例如:

E:\新闻发布系统\Web\Web\images\niunanlogo.jpg


               

8、一般处理程序生成验证码

        在一般处理程序中,先随机的生成几个符号作为验证码,然后再转换成网页图片形式显示出来。具体见牛老师博客。这个地方出现了一些小问题。随着验证码的验证成功,新闻发布系统也算告一段落了。具体在发布时出现的问题将继续记录下来……


       重新浏览了一次笔记,认为比较重要的,就罗列了出来,在整个新闻发布系统中,使用到的控件每个都是点到为止,用到了JavaScript也是提一笔,在以后的学习中应该会有深入讲解吧……
 

(责任编辑:源码海洋)本文地址:http://www.codehy.com/info/net/2019/0708/19552.html

推荐资讯