articlelist.aspx.cs

来自「ASP.NET的一些开发实例,有论坛管理系统等」· CS 代码 · 共 122 行

CS
122
字号
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Service;

namespace PKMS
{
	/// <summary>
	/// ArticleList 的摘要说明。
	/// </summary>
	public class ArticleList : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label Label_FullPath;
		protected System.Web.UI.WebControls.Button Button_New;
		protected System.Web.UI.WebControls.Label Label_ArticleList;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			if(!this.IsPostBack)
			{
				DataTable dt_SubFolders, dt_ArticleList;
				string FolderID = this.Request.QueryString["FolderID"];
				//string PageIndex = this.Request.QueryString["PageIndex"];
				this.Button_New.Attributes.Add("onclick","window.open('ArticleEdit.aspx?FolderID=" + FolderID +"');");
				DataAccessor da = new DataAccessor();

				GetPath(0, FolderID);
				this.Label_ArticleList.Text = "<TABLE width=\"100%\">";
				
				//判断该分类是否末级
				int IsLast = int.Parse(da.ExecuteScalar("Select IsLast From MENU Where MenuCode = '" + FolderID + "'").ToString());
				if(IsLast == 1)
				{
					//如果是末级,查询该分类所有记录
					dt_ArticleList = da.ExecuteDataTable("Select ArticleID, Topic From (Select ArticleID, Topic, UploadDate From ARTICLE Where FolderID='" + FolderID + "') RESULTS Order By UploadDate Desc");
					for(int j=0; j<dt_ArticleList.Rows.Count; j++)
					{
						this.Label_ArticleList.Text += "<TR><TD height=25>&nbsp;&nbsp;-&nbsp;&nbsp;<A href=\"ArticleView.aspx?ArticleID=" + dt_ArticleList.Rows[j][0].ToString() + "\" target=\"_blank\">" + dt_ArticleList.Rows[j][1].ToString() +"</A></TD></TR>";
					}
					this.Label_ArticleList.Text += "<TR><TD height=20></TD></TR>";
				}
				else
				{
					//如果不是末级,则对每个子目录查询属于它们的前5条记录
					dt_SubFolders = da.ExecuteDataTable("Select MenuCode, MenuName From MENU Where Editable=1 And ParentCode = '" + FolderID + "'");
					for(int i=0; i<dt_SubFolders.Rows.Count; i++)
					{
						this.Label_ArticleList.Text += "<TR><TD bgColor=\"#f4f4f4\" height=\"30\">&nbsp;&nbsp;<SPAN style=\"font-size:14px;FONT-WEIGHT: bold;\"><A onClick=\"window.parent.tree.location='menu.aspx?MenuCode=" + dt_SubFolders.Rows[i][0].ToString() +"'\" href=\"ArticleList.aspx?FolderID=" + dt_SubFolders.Rows[i][0].ToString() + "\">" + dt_SubFolders.Rows[i][1].ToString() +"</SPAN></TD></TR>";
						dt_ArticleList = da.ExecuteDataTable("Select top 5 ArticleID, Topic From ARTICLE Where FolderID Like '" + dt_SubFolders.Rows[i][0].ToString() + "%' Order By UploadDate Desc");
						for(int j=0; j<dt_ArticleList.Rows.Count; j++)
						{
							this.Label_ArticleList.Text += "<TR><TD height=\"20\" valign=\"bottom\">&nbsp;&nbsp;-&nbsp;&nbsp;<A href=\"ArticleView.aspx?ArticleID=" + dt_ArticleList.Rows[j][0].ToString() + "\" target=\"_blank\">" + dt_ArticleList.Rows[j][1].ToString() +"</A></TD></TR>";
						}
						this.Label_ArticleList.Text += "<TR><TD height=20></TD></TR>";
					}

					//处理未细分类的文档列表
					this.Label_ArticleList.Text += "<TR><TD bgColor=\"#f4f4f4\" height=\"30\">&nbsp;&nbsp;<SPAN style=\"font-size:14px;FONT-WEIGHT: bold;\">未分类文档<SPAN></TD></TR>";
					dt_ArticleList = da.ExecuteDataTable("Select ArticleID, Topic From ARTICLE Where FolderID = '" + FolderID + "' Order By UploadDate Desc");
					for(int j=0; j<dt_ArticleList.Rows.Count; j++)
					{
						this.Label_ArticleList.Text += "<TR><TD height=\"20\" valign=\"bottom\">&nbsp;&nbsp;-&nbsp;&nbsp;<A href=\"ArticleView.aspx?ArticleID=" + dt_ArticleList.Rows[j][0].ToString() + "\" target=\"_blank\">" + dt_ArticleList.Rows[j][1].ToString() +"</A></TD></TR>";
					}
					this.Label_ArticleList.Text += "<TR><TD height=20></TD></TR>";

					this.Label_ArticleList.Text += "</TABLE>";
				}
				da.Close();
			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.Load += new System.EventHandler(this.Page_Load);
		}
		#endregion


		private void GetPath(int levelcounter, string folderid)
		{
			DataAccessor da = new DataAccessor();
			string sql = "Select MenuCode, MenuName From MENU Where MenuCode='" + folderid + "'";
			DataRow dr = da.ExecuteRecord(sql);
			String MenuCode = dr["MenuCode"].ToString();
			String MenuName = dr["MenuName"].ToString();
			if(levelcounter<10)			//levelcount<10是为了避免出现因为数据错误导致的死循环
			{
				this.Label_FullPath.Text = "<A onClick=\"window.parent.tree.location='menu.aspx?MenuCode=" + MenuCode +"'\" href=\"ArticleList.aspx?FolderID=" + MenuCode +"\">" + dr["MenuName"].ToString() + "</A> > " + this.Label_FullPath.Text;
				string ParentCode = da.ExecuteScalar("Select ParentCode From MENU Where MenuCode='" + folderid + "'").ToString();
				levelcounter++;
				if(ParentCode != "")
				{
					GetPath(levelcounter, ParentCode);
				}
			}
			da.Close();
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?