歡迎您的來訪!有源碼,好建站(m.bmm520.net)源碼海洋源碼網為您提供快速建站平臺.
      當前位置: 首頁 > 行業資訊 > 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://m.bmm520.net/info/net/2019/0708/19552.html

      推薦資訊

      亚洲一区二区观看播放| 亚洲不卡中文字幕无码| 亚洲国产精品久久66| 亚洲桃色AV无码| 亚洲一区二区三区国产精品| 亚洲精品动漫人成3d在线| 亚洲成a人在线看天堂无码| 亚洲av手机在线观看| 亚洲成av人片天堂网老年人| 爱情岛论坛亚洲品质自拍视频网站| 色偷偷亚洲第一综合网| 亚洲AⅤ永久无码精品AA| 亚洲国产成人久久笫一页| 久久激情亚洲精品无码?V| 成人午夜亚洲精品无码网站| 亚洲码国产精品高潮在线| 久久精品国产亚洲香蕉| 亚洲欧洲日产国产综合网| 亚洲精品视频在线观看免费| 亚洲成a人片在线观看中文app| 亚洲中文字幕久在线| 亚洲日韩中文字幕一区| 久久精品国产亚洲AV| 亚洲欧洲国产成人综合在线观看| 中文字幕亚洲日韩无线码| 国产成人亚洲精品青草天美| 亚洲精品高清视频| 亚洲国产精品成人综合久久久| 亚洲三级高清免费| 久久亚洲精品无码网站| 亚洲日韩涩涩成人午夜私人影院| 亚洲色欲色欲www在线丝| 亚洲一区二区在线免费观看| 亚洲人成网站在线观看播放青青| 亚洲综合av一区二区三区不卡| 国产成人亚洲精品电影| 国产亚洲精品看片在线观看| 亚洲日韩图片专区第1页| 亚洲娇小性xxxx色| 亚洲Aⅴ无码一区二区二三区软件| 亚洲午夜久久久久久久久久|