歡迎您的來訪!有源碼,好建站(m.bmm520.net)源碼海洋源碼網(wǎng)為您提供快速建站平臺(tái).
      當(dāng)前位置: 首頁 > 行業(yè)資訊 > c# .net 資料 >

      【牛腩新聞發(fā)布系統(tǒng)】——技術(shù)總結(jié)

      時(shí)間:2019-07-08 16:14來源:未知 作者:源碼海洋 點(diǎn)擊:
      首先,后臺(tái)代碼是沒有什么錯(cuò)誤的,因?yàn)槎际歉鶕?jù)分層實(shí)現(xiàn)的,這里一直在鍛煉當(dāng)中,自然也就熟悉了。 接下來總結(jié)一下整體自認(rèn)為學(xué)到的新知識(shí)。 首頁的制作和它與后臺(tái)的整合中出現(xiàn)的一些實(shí)現(xiàn)較為費(fèi)勁的地方。 1、制作母版頁 為了減少在網(wǎng)頁設(shè)計(jì)時(shí)出現(xiàn)的變一頁而

      首先,后臺(tái)代碼是沒有什么錯(cuò)誤的,因?yàn)槎际歉鶕?jù)分層實(shí)現(xiàn)的,這里一直在鍛煉當(dāng)中,自然也就熟悉了。

      接下來總結(jié)一下整體自認(rèn)為學(xué)到的新知識(shí)。

              首頁的制作和它與后臺(tái)的整合中出現(xiàn)的一些實(shí)現(xiàn)較為費(fèi)勁的地方。       

                               

      1、制作母版頁

              為了減少在網(wǎng)頁設(shè)計(jì)時(shí)出現(xiàn)的變一頁而懂全站的問題,我們使用了母版頁,這樣,就不必每個(gè)頁面都去更新,修改一次,所有的網(wǎng)頁都會(huì)改變,做到了一勞永逸。例如在牛腩新聞發(fā)布系統(tǒng)中前臺(tái)頁面畫紅線的地方。

              這樣就不存在代碼冗余,牽一發(fā)而動(dòng)全身的現(xiàn)象了。

                       

      2、表格

      (1)Repeater:不會(huì)生成多余的代碼

                在項(xiàng)模板中直接寫上需要重復(fù)的語句,界面控件綁定D層查詢到的DataTable里的數(shù)據(jù)。

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


      (2)GridView:這是一個(gè)功能最強(qiáng)大的table控件,但是靈活性最差,會(huì)生成很多的多余代碼。

                   這是綁定熱點(diǎn)新聞使用的GridView控件

          <span style="font-size:18px;"> </span><span style="font-size:14px;"><!--熱點(diǎn)新聞-->
                  <div id="hotnews" class ="commonfrm">
                      <h4 >熱點(diǎn)新聞</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="新聞標(biāo)題">                       
                                  <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="發(fā)布時(shí)間" 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>

        

      擴(kuò)展:

             GridView、DataList、Repeater控件使用

             GridView是很智能的,直接就提供了很多的表現(xiàn)方式,是三者中最復(fù)雜也是最占資源的一個(gè),常用于列表數(shù)據(jù)處理的時(shí)候,但是最好是不要太大量的數(shù)據(jù);

             Datalist:實(shí)現(xiàn)重復(fù)項(xiàng)顯示的功能,里面的內(nèi)容自定義程度高,有點(diǎn)類似于在SAP中寫循環(huán)語句來實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)列表,是線性的處理。直接輸出;數(shù)據(jù)量很大的時(shí)候可以考慮用這個(gè)。

             Repeater:介于兩者之間。

            其實(shí),使用哪個(gè)控件要根據(jù)實(shí)際情況、數(shù)據(jù)量的大小、所占的內(nèi)存而定,當(dāng)然我們所做的程序要是內(nèi)存小、功能強(qiáng)大的方向努力,所以在選擇控件的時(shí)候要慎重。


      3、.NET截取指定長(zhǎng)度漢字超出部分以“...”代替

             這個(gè)是在新聞列表頁的時(shí)候,當(dāng)表格中新聞標(biāo)題太長(zhǎng)時(shí),在一定的空間內(nèi)是不可能完全顯示的,但是又想著當(dāng)鼠標(biāo)移上去的時(shí)候可以全部顯示出來,這樣就用到了這個(gè)截取指定長(zhǎng)度超出部分。然后鼠標(biāo)移上去又全部顯示。

             首先,截取指定長(zhǎng)度漢字。

          <span style="font-size:14px;">        /// <summary>
                  /// 將指定字符串按指定長(zhǎng)度進(jìn)行剪切
                  /// </summary>
                  /// <param name="oldStr">需要截?cái)嗟淖址?lt;/param>
                  /// <param name="maxLength">字符串的最大長(zhǎng)度</param>
                  /// <param name="endWith">超過長(zhǎng)度的后綴</param>
                  /// <returns>如果超過長(zhǎng)度,返回截?cái)嗪蟮男伦址由虾缶Y,否則,返回原字符串</returns>
                  public static string StringTruncat(string oldStr, int maxLength, string endWith)
                  {
                      if (string.IsNullOrEmpty(oldStr))  //原字符創(chuàng)不能為空
                          return oldStr + endWith;
                      if (maxLength < 1)
                          throw new Exception("返回的字符串長(zhǎng)度必須大于【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>標(biāo)簽中間是截取漢字的使用

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


                    在<a>標(biāo)簽中的title屬性設(shè)置鼠標(biāo)移上去后,長(zhǎng)度等于沒有截取之前的新聞標(biāo)題

      <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)導(dǎo)入命名空間

      using System.Web.Security; 


       (2)獲取MD5碼

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


      (3)同時(shí)需要寫一個(gè)登錄邏輯

      這時(shí)就需要把獲取到的MD5代碼轉(zhuǎn)換成我們熟知的密碼

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


      5、Bind和Eval的區(qū)別

             綁定表達(dá)式

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

      區(qū)別:

              1、Eval是只讀數(shù)據(jù),Bind是可更新的。

              2、當(dāng)對(duì)此表達(dá)式操作時(shí)候,必須用Eval,如,<%# Eval("字段名").ToString().Trim() %>

              3、若GridView中綁定列里面,設(shè)置內(nèi)容格式DataFormateString={0:d},則必須把屬性HtmlCode設(shè)置為false,否則無法起作用。

              Eval  單向綁定:數(shù)據(jù)是只讀的

              Bind:雙向綁定:數(shù)據(jù)可以更改,并返回服務(wù)器端,服務(wù)器可以處理更改后的數(shù)據(jù),如存入數(shù)據(jù)庫。

          

      6、有關(guān)Session

             Session是指一個(gè)終端用戶與交互系統(tǒng)進(jìn)行通信的時(shí)間間隔,通常指從注冊(cè)進(jìn)入系統(tǒng)到注銷退出系統(tǒng)之間所經(jīng)過的時(shí)間。

             在Web中,Session指的是用戶在瀏覽某個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過的這段時(shí)間,也就是用戶瀏覽這個(gè)網(wǎng)站所花費(fèi)的時(shí)間。

             當(dāng)一個(gè)Session第一次被啟用時(shí),一個(gè)唯一額標(biāo)識(shí)被存儲(chǔ)于本地的cookie中。

             存儲(chǔ)需要在整個(gè)用戶會(huì)話過程中保持其狀態(tài)的信息,例如登錄信息或用戶瀏覽Web應(yīng)用程序是需要的其他信息。Session的作用就是它在Web服務(wù)器上保持用戶的狀態(tài)信息供任何時(shí)間從任何頁訪問。因?yàn)闉g覽器不需要存儲(chǔ)任何這種信息,所以可以使用任何李蘭器。

             這是我們可以通過取得Session里的值來判斷登錄條件。如:判斷登錄用戶是否為niunan

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


      7、路徑問題

            這是在做網(wǎng)頁一直貫穿的問題,圖片的加載就要涉及到路徑問題。

      (1)相對(duì)路徑

      當(dāng)前所在目錄:""

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

            上一級(jí)目錄:"../"

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

            上一級(jí)的上一級(jí):"../../"

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

      (2)絕對(duì)路徑

              絕對(duì)路徑就是具體的磁盤位置等。例如:

      E:\新聞發(fā)布系統(tǒng)\Web\Web\images\niunanlogo.jpg


                     

      8、一般處理程序生成驗(yàn)證碼

              在一般處理程序中,先隨機(jī)的生成幾個(gè)符號(hào)作為驗(yàn)證碼,然后再轉(zhuǎn)換成網(wǎng)頁圖片形式顯示出來。具體見牛老師博客。這個(gè)地方出現(xiàn)了一些小問題。隨著驗(yàn)證碼的驗(yàn)證成功,新聞發(fā)布系統(tǒng)也算告一段落了。具體在發(fā)布時(shí)出現(xiàn)的問題將繼續(xù)記錄下來……


             重新瀏覽了一次筆記,認(rèn)為比較重要的,就羅列了出來,在整個(gè)新聞發(fā)布系統(tǒng)中,使用到的控件每個(gè)都是點(diǎn)到為止,用到了JavaScript也是提一筆,在以后的學(xué)習(xí)中應(yīng)該會(huì)有深入講解吧……
       

      (責(zé)任編輯:源碼海洋)本文地址:http://m.bmm520.net/info/net/2019/0708/19552.html

      推薦資訊

      久久久亚洲欧洲日产国码aⅴ| 亚洲av午夜成人片精品网站 | 蜜芽亚洲av无码一区二区三区| 亚洲av乱码一区二区三区| 亚洲资源在线观看| 亚洲国产天堂在线观看| 亚洲成人免费在线| 亚洲成av人在线视| 久久精品国产亚洲| 久久国产亚洲观看| 久久水蜜桃亚洲av无码精品麻豆| 亚洲欧洲免费视频| 亚洲视频一区在线观看| 亚洲国产精品综合久久2007| 亚洲精品综合久久中文字幕| 亚洲成AV人片久久| 亚洲娇小性xxxx色| 亚洲国产最大av| 亚洲色大成网站www永久男同| 亚洲依依成人亚洲社区| 亚洲精品国产第一综合99久久| 亚洲欧好州第一的日产suv| 亚洲精品美女久久7777777| 久久亚洲精品无码网站| 亚洲第一页日韩专区| 亚洲午夜无码片在线观看影院猛| JLZZJLZZ亚洲乱熟无码| 亚洲区小说区激情区图片区| 亚洲精品中文字幕无码蜜桃| 亚洲av无码专区在线播放| 亚洲国产日韩一区高清在线| 亚洲国产高清在线精品一区| 亚洲精品456人成在线| 亚洲av成人片在线观看| 亚洲福利在线播放| 亚洲啪啪AV无码片| 久久亚洲精品成人av无码网站| 亚洲毛片免费观看| 亚洲一线产品二线产品| 国产亚洲成在线播放va| 在线观看亚洲天天一三视|