深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

asp+的论坛列表程序---代码部分


March 25,2004
asp+的论坛列表程序---代码部分   

--------------------------------------------------------------------------------
【bigeagle】 于 2000-11-13 15:38:57 加贴在 Joy ASP ↑:

///////////////////////////////////////////////////////////////////////////////
//
// File name:         forum.cs
//
// Description:       forum.aspx的后台代码
//
// date:              2000/10/13
//
// Programming:       Bigeagle
//
// History:           version 1.0
//                    start at 2000/10/13 16:45  finish
//
////////////////////////////////////////////////////////////////////////////////



using System;
using System.Collections ;
using System.Data;
using System.Data.SQL;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing ;

public class Forum : Page
{
  

  //public Image imgIfNew ;
  public Label lblForumName ;
  public HyperLink linkMaster ;
  public Label lblForumName1 ;
  public ImageButton btnPostNew ;
  public ImageButton btnPostNew1 ;
  public Label lblTopicCounts ;
  public Label lblTopicCounts1 ;
  public Label lblPerPage ;
  public Label lblPosition ;
  public HtmlImage imgOICQ ;
  public HyperLink linkFirstPage ;
  public HyperLink linkPrevPage ;
  public HyperLink linkNextPage ;
  public HyperLink linkLastPage ;
  public HyperLink linkFirstPage1 ;
  public HyperLink linkPrevPage1 ;
  public HyperLink linkNextPage1 ;
  public HyperLink linkLastPage1 ;
  public DropDownList selChangeForum ;       //转换版面下拉框
  
  public Table tblTopic ;
  
  public void Page_Load(Object sender , EventArgs e)
    {
      Int32 intForumID = new Int32();
      Int32 intPageNo  = new Int32() ;      
      int intPageSize  = 20 ;
      int intPageCount = 0 ;
      int intTopicCounts = 0 ;
     
     
     //--edit by bigeagle 2000/10/25------------------
     // if (Session["LoginID"] == null )
     //   {
     //       Response.Redirect("login.aspx") ;
     //   }
     //-----------------------------------------------
     
      //接收论坛ID
      try
        {
          intForumID = Request.QueryString["ID"].ToInt32() ;
        
        }
      catch(Exception exp)
        {
          Response.Write(exp.ToString()) ;
        }  
      
      GetForumInfo(intForumID) ;
      
      //接收页号
      try
        {
          intPageNo = Request.QueryString["PageNo"].ToInt32() ;
        
        }
      catch(Exception exp)
        {
          intPageNo = 1 ;
        }  
      
      //规范页号,页数
      intTopicCounts = lblTopicCounts1.Text.ToInt32() ;
      if (intTopicCounts <= intPageSize)
        {
          intPageCount = 1 ;
        }
      else if (intTopicCounts / intPageSize == 0)
        {
          intPageCount = intTopicCounts / intPageSize ;
        }
      else
        {
          intPageCount = (int)(intTopicCounts / intPageSize) + 1 ;   
        }
      
      if (intPageNo < 1)
        {
          intPageNo = 1 ;
        }
      else if (intPageNo > intPageCount)
        {
          intPageNo = intPageCount ;
        }         
        
      //初始化页面显示
      lblTopicCounts.Text      = intTopicCounts.ToString() ;
      lblTopicCounts.ForeColor = Color.Green ;
      lblPerPage.Text          = intPageSize.ToString() ;
      lblPerPage.ForeColor     = Color.Green ;
      lblPosition.Text         = intPageNo.ToString() + "/" + intPageCount.ToString() ;
      lblPosition.ForeColor    = Color.Green ;
      
      
      //更新导航栏
      
      //首页
      if (intPageNo != 1)
        {
          linkFirstPage.NavigateUrl = "forum.aspx?" + "ID=" + intForumID.ToString() ;
          linkFirstPage.ToolTip     = "回到首页" ;
          linkFirstPage1.NavigateUrl = "forum.aspx?" + "ID=" + intForumID.ToString() ;
          linkFirstPage1.ToolTip     = "回到首页" ;
        }
      else
        {
          linkFirstPage.ToolTip     = "你现在就在首页。" ;
          linkFirstPage1.ToolTip     = "你现在就在首页。" ;
        }     
                                          
     //前页
     if (intPageNo > 1 )
        {
          linkPrevPage.NavigateUrl = "forum.aspx?" + "ID=" + intForumID.ToString()
                                    + "&PageNo=" + (intPageNo - 1).ToString() ;
          linkPrevPage.ToolTip     = "回到上一页。" ;
          linkPrevPage1.NavigateUrl = "forum.aspx?" + "ID=" + intForumID.ToString()
                                    + "&PageNo=" + (intPageNo - 1).ToString() ;
          linkPrevPage1.ToolTip     = "回到上一页。" ;
        }
     else
        {
          linkPrevPage.ToolTip     = "你现在就位于第一页,你还想上哪儿?" ;
          linkPrevPage1.ToolTip     = "你现在就位于第一页,你还想上哪儿?" ;
        }
     
     //后页
     if (intPageNo < intPageCount )
       {
         linkNextPage.NavigateUrl  = "forum.aspx?" + "ID=" + intForumID.ToString()
                                    + "&PageNo=" + (intPageNo + 1).ToString() ;
         linkNextPage.ToolTip      = "到下一页。" ;
         linkNextPage1.NavigateUrl  = "forum.aspx?" + "ID=" + intForumID.ToString()
                                    + "&PageNo=" + (intPageNo + 1).ToString() ;
         linkNextPage1.ToolTip      = "到下一页。" ;
       }
     else
       {
         linkNextPage.ToolTip      = "你现在就位于最后一页,你还想上哪
儿?" ;                                                                              
         linkNextPage1.ToolTip      = "你现在就位于最后一页,你还想上哪
儿?" ;                                                                              
       }
      
     //末页
     if (intPageNo != intPageCount)
       {
         linkLastPage.NavigateUrl  = "forum.aspx?" + "ID=" + intForumID.ToString()
                                    + "&PageNo=" + intPageCount.ToString() ;
         linkLastPage.ToolTip      = "到最后一页。" ;
         linkLastPage1.NavigateUrl  = "forum.aspx?" + "ID=" + intForumID.ToString()
                                    + "&PageNo=" + intPageCount.ToString() ;
         linkLastPage1.ToolTip      = "到最后一页。" ;
       }
     else
       {
         linkLastPage.ToolTip      = "你现在就位于最后一页。" ;
         linkLastPage1.ToolTip      = "你现在就位于最后一页。" ;
       }                                 
        
        
      //贴子列表
      ShowTopicList(intForumID , 0 , intPageNo , intPageSize) ;
      
      //显示转换版面下拉列表
      ShowChangeForum(intForumID) ;
    }

  private void ShowTopicList(int a_intForumID , int a_intDays , int a_intPageNo , int a_intPageSize)
    {
      
      //读出纪录
      SQLConnection myConnection = new SQLConnection("server=server1;uid=sa;pwd=;database=BBS");
      SQLCommand myCommand = new SQLCommand("up_TopicsList" , myConnection);

      myCommand.ActiveConnection = myConnection ;
      myCommand.CommandType = CommandType.StoredProcedure;
      
      SQLParameter workParam = null;

      //论坛id
      workParam = myCommand.Parameters.Add(new SQLParameter("@a_ForumID", SQLDataType.Int, 4));
      workParam.Direction = ParameterDirection.Input;
      workParam.Value = a_intForumID ;
        
         
      //限定天数
      workParam = myCommand.Parameters.Add(new SQLParameter("@a_intDays", SQLDataType.Int, 4));
      workParam.Direction = ParameterDirection.Input;
      workParam.Value = a_intDays ;
      
      //页号
      workParam = myCommand.Parameters.Add(new SQLParameter("@a_intPageNo", SQLDataType.Int, 4));
      workParam.Direction = ParameterDirection.Input;
      workParam.Value = a_intPageNo ;
      
      //每页显示数
      workParam = myCommand.Parameters.Add(new SQLParameter("@a_intPageSize", SQLDataType.Int, 4));
      workParam.Direction = ParameterDirection.Input;
      workParam.Value = a_intPageSize ;
      
      SQLDataReader myReader ;

      try
        {
          myConnection.Open();
          myCommand.Execute(out myReader);
          //Response.Write(myReader.HasValue.ToString());
         
          //取纪录
          if (lblTopicCounts.Text.ToInt32() == 0)        //如果没有发言
            {
              TableRow tr = new TableRow() ;
              tr.BackColor = Color.White ;
              TableCell td = new TableCell() ;
              td.ColumnSpan = 6 ;
              td.VerticalAlign = VerticalAlign.Middle ;
              td.HorizontalAlign = HorizontalAlign.Center ;
              td.Height  =200 ;
              td.Controls.Add(new LiteralControl("目前尚未有人发言!")) ;
              tr.Cells.Add(td) ;
              tblTopic.Rows.Add(tr) ;
            }
          else                                         //否则,显示贴字列表
            {   
              
              while (myReader.Read())
                {
                  String strInnerHtml = "";
                  TableRow tr = new TableRow() ;
                  tr.BackColor = Color.White ;
                  
                  //贴子状态图片
                  TableCell tdStatus = new TableCell() ;
                  if ((int)myReader["TotalChilds"] == 0)
                    {
                      strInnerHtml = "<img src='images/closed.gif' alt='没有新回复。'>" ;
                    }
                  else if((int)myReader["TotalChilds"] < 5)
                    {
                      strInnerHtml = "<img src='images/closedb.gif' alt='有新回复,不过不多。'>";
                    }
                  else if((int)myReader["TotalChilds"] >= 10)
                    {
                      strInnerHtml = "<img src='images/hotclosedb.gif' alt='太火了。'>";
                    }                    
                  else if((int)myReader["TotalChilds"] >= 5)
                    {
                      strInnerHtml = "<img src='images/hotclosed.gif' alt='回复不少。'>";
                    }
                  tdStatus.Controls.Add(new LiteralControl(strInnerHtml)) ;
                  tr.Cells.Add(tdStatus) ;
                  
                  //表情图片
                  TableCell tdFace = new TableCell() ;
                  strInnerHtml = "<img src='images/icon"+myReader["FaceID"].ToString() +".gif'>" ;
                  //Response.Write(strInnerHtml) ;
                  tdFace.Controls.Add(new LiteralControl(strInnerHtml)) ;
                  tr.Cells.Add(tdFace) ;
                  
                  //主题
                  TableCell tdTitle = new TableCell() ;
                  strInnerHtml = "<a href='ShowTopic.aspx?id=" + myReader["ID"].ToString() + "'>"
                                + myReader["Title"].ToString()  + "</a>";
                  tdTitle.Controls.Add(new LiteralControl(strInnerHtml)) ;
                  tr.Cells.Add(tdTitle) ;
                  
                  //作者
                  TableCell tdAuthor = new TableCell() ;
                  strInnerHtml = myReader["UserName"].ToString() ;
                  tdAuthor.Controls.Add(new LiteralControl(strInnerHtml)) ;
                  tr.Cells.Add(tdAuthor) ;
                  
                  //回复数
                  TableCell tdReply = new TableCell() ;
                  strInnerHtml = myReader["TotalChilds"].ToString() ;
                  tdReply.Controls.Add(new LiteralControl(strInnerHtml)) ;
                  tr.Cells.Add(tdReply) ;
                  
                  //最后回复时间
                  TableCell tdReplyTime = new TableCell() ;
                  strInnerHtml = myReader["LastReplyTime"].ToString() ;
                  tdReplyTime.Controls.Add(new LiteralControl(strInnerHtml)) ;
                  tr.Cells.Add(tdReplyTime) ;
                  
                  tblTopic.Rows.Add(tr) ;
                  
                  
                  
                  
                }
            }
        }
      catch(Exception exp)
        {
          Response.Write(exp.ToString() ) ;
          //Response.Redirect("error.asp") ;
        }
      finally
        {
          myConnection.Close();
          //Response.Redirect("default.aspx") ;
        }               
      
      
    }
   
  private void GetForumInfo(int a_intForumID)
    {
      SQLConnection myConnection = new SQLConnection("server=server1;uid=sa;pwd=;database=BBS");
      SQLCommand myCommand = new SQLCommand("up_GetForum" , myConnection);

      myCommand.ActiveConnection = myConnection ;
      myCommand.CommandType = CommandType.StoredProcedure;
      
      SQLParameter workParam = null;

      //论坛id
      workParam = myCommand.Parameters.Add(new SQLParameter("@a_ForumID", SQLDataType.Int, 4));
      workParam.Direction = ParameterDirection.Input;
      workParam.Value = a_intForumID ;
        
         

      
      SQLDataReader myReader ;

      try
        {
          myConnection.Open();
          myCommand.Execute(out myReader);
         
          myReader.Read() ;
         
          //板块名称
          lblForumName.Text  = myReader["CategoryName"].ToString() ;      
          lblForumName.CssClass = "BigTitle" ;
          lblForumName.ToolTip = myReader["Description"].ToString() ;
          lblForumName1.Text = lblForumName.Text ;
          lblForumName1.CssClass = "Title" ;
          lblForumName1.ToolTip = myReader["Description"].ToString() ;

          //贴子数
          lblTopicCounts1.Text = myReader["NewTopicNumber"].ToString() ;
          lblTopicCounts1.ToolTip = "当前贴子数:" + lblTopicCounts1.Text ;


          //oicq
          if (myReader["OICQ"].ToString() != "")
            {
              imgOICQ.Src = "http://infocenter.tencent.com/" + myReader["OICQ"].ToString() + "/s/00/99" ;
              imgOICQ.Alt = "OICQ:" + myReader["OICQ"].ToString() ;
              //imgOICQ.Src = "images/off.gif" ;
            }
          else
            {
              imgOICQ.Src = "" ;
              imgOICQ.Alt = "没留OICQ。" ;
            }   

          //版主
          linkMaster.Text = myReader["UserName"].ToString() ;
          linkMaster.NavigateUrl = (myReader["Email"].ToString() == "" ? "" :
                                  "MailTo:" + myReader["Email"].ToString()) ;
          linkMaster.ToolTip = (myReader["Email"].ToString() == "" ? "版主没留Email," :"写信给版主,");
         
        }
      catch(Exception exp)
        {
          Response.Write(exp.ToString()) ;
          //Response.Redirect("error.asp") ;
        }
      finally
        {
          myConnection.Close();
          //Response.Redirect("default.aspx") ;
        }   
   
   }
   
  //显示转换版面下拉列表
  private void ShowChangeForum(int a_intForumID)
   {
     selChangeForum.Width = 200 ;
     
   }  
}  
       
       
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved