<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      使用純粹的asp+語言制作的欄目管理(二)

      [摘要]http://www.asp888.net 豆腐技術站 昨天我們看了 豆腐利用 asp.net 的特性作的 欄目管理的程序的第一部分,在今天的第二部分中,豆腐將把 昨天我們錄入界面錄入的數據顯示出來...
      http://www.asp888.net 豆腐技術站

      昨天我們看了 豆腐利用 asp.net 的特性作的 欄目管理的程序的第一部分,在今天的第二部分中,豆腐
      將把 昨天我們錄入界面錄入的數據顯示出來,并且在這個部分,專門做了一個 用來進行分頁管理的一個
      Pagelet,通過這個pagelet 我們將 Select 出來的記錄進行了分頁的處理,并且復習了我們以前的文章如何在asp+ 中使用自定義的pagelet
      通過這個程序,我們將會學習到在 asp.net 的編程中的一些中級的技術(其實更為高級的技術,我們在目前)
      的學習和應用的過程中,似乎還沒有用到!不對,不對,是豆腐沒有用到:)
      下面我們首先來看看我們作的這個ascx文件:也叫用戶自定義組件文件
      c.ascx:
      <%@ Import Namespace="System.Data" %>
      <%@ Import Namespace="System.Data.SQL" %>
      <% @ Import Namespace="System.Drawing" %>
      <script runat=server language="C#">
      public SQLDataReader sRead; //這個是綁定的數據
      public int intPageCount=5; //這個是每頁需要顯示的數據的多少 默認是10
      public int intRecStart=0; //這個是當前數據的 起使位置, 默認是 0
      public int intCurrentRow=0; //當前的Row 指針所在的位置
      public int intRecCount; //當前的這個查詢的記錄總數

      public void DataBind(){
      int i;
      for(i=0;i<intRecStart;i++){
      sRead.Read();
      }
      }
      public String GetVal(String strName){
      sRead.Read();
      return sRead[strName].ToString();
      }
      public bool MyRead(){
      if(!sRead.Read())
      return false;
      if(intCurrentRow==intPageCount)
      return false;
      intCurrentRow++;
      return true;
      }
      public void PageBar(){
      TableCell c;
      TableRow r = new TableRow();
      c= new TableCell();
      int ii=intRecCount;
      //(ArrayList)sRead;
      String strWrite;
      if(intRecStart==0){
      strWrite="首頁 上頁";
      }
      else
      {
      strWrite="<a href='c.aspx?start=0'>首頁</a> <a href='c.aspx?start=" + (intRecStart-intPageCount).ToString() + "'>上頁</a>";
      }
      if((intRecStart+intPageCount)>ii){
      strWrite= strWrite + " 首頁 上頁";
      }
      else{
      strWrite= strWrite + "<a href='c.aspx?start=" + (intRecStart+intPageCount).ToString() +"'>下頁</a> <a href='c.aspx?start=" + (intRecStart+intPageCount).ToString() + "'>末頁</a>";
      }
      c.Controls.Add(new LiteralControl(strWrite));
      r.Cells.Add(c);

      c = new TableCell(); //生成新的一列
      c.Controls.Add(new LiteralControl("共有記錄" + ii.ToString()));
      r.Cells.Add(c);

      Table1.Rows.Add(r);
      }
      </script>
      <asp:Table id="Table1" GridLines="Both" HorizontalAlign="Center" Font-Name="Verdana" Font-Size="8pt" width=100% Runat="server"/>
      然后,我們可以通過語句:
      <%@ Register TagPrefix="asp888" TagName="myPageTable" Src="c.ascx" %>
      可以把c.ascx 文件加入到 任意一個aspx 文件中,而且,我們可以在 aspx 文件中對 我們的這個 ascx 文件中的 public 定義的
      參數進行Get 和 Set 的操作,就如同 操作<asp:TextBox> 的屬性和方法是一樣的,大家在這里一定要特別注意
      <asp888:myPageTable id="menuControl1" runat=server />,這個就是我們在 通過 <% Register >中定義的PreFix 和 TagName
      來組成的,這樣我們通過這個程序,模擬了DataGrid 的 DataBind 的操作,同時也實現了分頁的自動化
      <%@ Import Namespace="System.Data" %>
      <%@ Import Namespace="System.Data.SQL" %>
      <%@ Register TagPrefix="asp888" TagName="myPageTable" Src="c.ascx" %>
      <script runat=server language="C#">
      protected void Page_Load(Object Src, EventArgs E){
      int intRecStart=Request.QueryString["start"].ToInt16();
      SQLDataReader dbRead;
      SQLCommand dbComm;
      String strSQL;
      String strConn;
      SQLConnection conn;
      Hashtable Cfg=new Hashtable();
      Cfg = (Hashtable)Context.GetConfig("appsettings");
      strConn=Cfg["Conn"].ToString();
      conn = new SQLConnection(strConn);
      //首先得到記錄總數
      strSQL="select count(*) from lanmu";
      dbComm = new SQLCommand(strSQL, conn);
      dbComm.ActiveConnection.Open();
      dbComm.Execute(out dbRead);
      dbRead.Read();
      int intRecCount=dbRead.GetInt32(0);
      dbComm.ActiveConnection.Close();
      strSQL="select * from lanmu order by id desc";
      dbComm = new SQLCommand(strSQL, conn);
      dbComm.ActiveConnection.Open();
      dbComm.Execute(out dbRead);
      menuControl1.sRead=dbRead;
      menuControl1.intRecStart=intRecStart;
      menuControl1.intRecCount=intRecCount;
      menuControl1.DataBind();
      menuControl1.PageBar();
      WriteTable();
      }
      void WriteTable(){
      TableCell c;
      TableRow r;


      r = new TableRow(); //生成新的一行
      c = new TableCell(); //生成新的一列
      c.Controls.Add(new LiteralControl("序號"));
      r.Cells.Add(c);

      c = new TableCell(); //生成新的一列
      c.Controls.Add(new LiteralControl("文章標題"));
      r.Cells.Add(c);

      c = new TableCell(); //生成新的一列
      c.Controls.Add(new LiteralControl("閱讀次數"));
      r.Cells.Add(c);
      tableTest.Rows.Add(r);
      while(menuControl1.MyRead()){
      r = new TableRow(); //生成新的一行

      c = new TableCell(); //生成新的一列
      c.Controls.Add(new LiteralControl(menuControl1.sRead["id"].ToString()));
      r.Cells.Add(c);

      //欄目的標題用 HyperLink 表示
      HyperLink h=new HyperLink();
      h.Text=menuControl1.sRead["title"].ToString();
      h.NavigateUrl="viewarticle.aspx?id=" + menuControl1.sRead["id"].ToString();
      c = new TableCell(); //生成新的一列
      c.Controls.Add(h);
      r.Cells.Add(c);

      c = new TableCell(); //生成新的一列
      c.Controls.Add(new LiteralControl(menuControl1.sRead["viewnum"].ToString()));
      r.Cells.Add(c);

      tableTest.Rows.Add(r);
      }
      return;
      }
      </script>
      <html>
      <head>
      </head>

      <body>
      <asp888:myPageTable id="menuControl1" runat=server />
      <asp:Table id="tableTest" width=100% GridLines="Both" Runat="server" HorizontalAlign="Center" Font-Name="Verdana" Font-Size="8pt" CellSpacing=0 />
      </body>
      </html>
      當然,由于時間的關系,我的這個程序有的功能實現的還是比較粗糙和簡單的,相信大家只要在這個程序
      的基礎上 舉一反三,一定可以學習到很多很多的知識。同志們,努力吧!





      日韩精品一区二区三区高清