|
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 ; } }
(出处:不详 ) |