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

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

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

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

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

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

                               

      1、制作母版頁(yè)

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

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

                       

      2、表格

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

                在項(xiàng)模板中直接寫(xiě)上需要重復(fù)的語(yǔ)句,界面控件綁定D層查詢(xún)到的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="所屬類(lèi)別" 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)類(lèi)似于在SAP中寫(xiě)循環(huán)語(yǔ)句來(lái)實(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è)是在新聞列表頁(yè)的時(shí)候,當(dāng)表格中新聞標(biāo)題太長(zhǎng)時(shí),在一定的空間內(nèi)是不可能完全顯示的,但是又想著當(dāng)鼠標(biāo)移上去的時(shí)候可以全部顯示出來(lái),這樣就用到了這個(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">超過(guò)長(zhǎng)度的后綴</param>
                  /// <returns>如果超過(guò)長(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)度等于沒(méi)有截取之前的新聞標(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碼

            登錄頁(yè)面,需要輸入密碼,但是

       (1)導(dǎo)入命名空間

      using System.Web.Security; 


       (2)獲取MD5碼

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


      (3)同時(shí)需要寫(xiě)一個(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,否則無(wú)法起作用。

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

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

          

      6、有關(guān)Session

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

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

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

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

             這是我們可以通過(guò)取得Session里的值來(lái)判斷登錄條件。如:判斷登錄用戶(hù)是否為niunan

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


      7、路徑問(wèn)題

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

      (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ì)路徑就是具體的磁盤(pán)位置等。例如:

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


                     

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

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


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

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

      推薦資訊

      亚洲AV无码专区亚洲AV伊甸园| 亚洲精品第一国产综合境外资源| 亚洲精品视频观看| 国产亚洲成人久久| 亚洲精品成人片在线观看| 朝桐光亚洲专区在线中文字幕| 亚洲Av永久无码精品黑人 | 亚洲国产精品无码中文字| 亚洲中文字幕精品久久| 中文字幕亚洲综合小综合在线| 亚洲国产成人精品无码一区二区| 亚洲最大黄色网址| 国产亚洲人成网站观看| 好看的亚洲黄色经典| 亚洲AV永久无码精品成人| 亚洲av女电影网| 久久精品国产亚洲av麻豆小说 | 亚洲AV人无码激艳猛片| 亚洲AV永久无码精品成人| 久久久综合亚洲色一区二区三区 | 亚洲av无码专区在线电影天堂 | 亚洲人成在线电影| 亚洲第一页在线播放| 亚洲六月丁香六月婷婷色伊人| 亚洲香蕉久久一区二区三区四区| 麻豆狠色伊人亚洲综合网站| 亚洲中文字幕久久精品无码A| 亚洲AV成人无码久久WWW| 亚洲av午夜成人片精品电影 | 国产99久久亚洲综合精品| 亚洲乱码国产一区网址| 亚洲人成影院在线无码按摩店| 国产AV无码专区亚洲AV男同| 老汉色老汉首页a亚洲| 亚洲日本香蕉视频| 亚洲男人的天堂网站| 亚洲av无码电影网| 亚洲精品精华液一区二区| 最新国产成人亚洲精品影院| 亚洲乱码国产乱码精华| 亚洲精品成人a在线观看|