discussdetails.aspx.cs
来自「三层架构的.net源码三层架构的.net源码」· CS 代码 · 共 220 行
CS
220 行
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace MyStarterKit.Portal.Web
{
/// <summary>
/// DiscussDetails 的摘要说明。
/// </summary>
public class DiscussDetails : System.Web.UI.Page
{
protected System.Web.UI.WebControls.LinkButton ReplyBtn;
protected System.Web.UI.WebControls.Panel ButtonPanel;
protected System.Web.UI.WebControls.TextBox TitleField;
protected System.Web.UI.WebControls.TextBox BodyField;
protected System.Web.UI.WebControls.LinkButton updateButton;
protected System.Web.UI.WebControls.LinkButton cancelButton;
protected System.Web.UI.WebControls.Panel EditPanel;
protected System.Web.UI.WebControls.Label Title;
protected System.Web.UI.WebControls.Label CreatedByUser;
protected System.Web.UI.WebControls.Label CreatedDate;
protected System.Web.UI.WebControls.Label Body;
protected System.Web.UI.HtmlControls.HtmlAnchor prevItem;
protected System.Web.UI.HtmlControls.HtmlAnchor nextItem;
int moduleId = 0;
int itemId = 0;
private void Page_Load(object sender, System.EventArgs e)
{
// 所属模块Id
moduleId = Int32.Parse(Request.Params["Mid"]);
// 项Id
if (Request.Params["ItemId"] != null)
{
//查看留言的Id
itemId = Int32.Parse(Request.Params["ItemId"]);
}
else
{
// 为0表示发表留言
itemId = 0;
EditPanel.Visible = true;
ButtonPanel.Visible = false;
}
// 当第一次提交,且有留言时绑定初始数据
if (Page.IsPostBack == false && itemId != 0)
{
BindData();
}
// 验证用户是否可以修改指定模块
if (PortalSecurity.HasEditPermissions(moduleId) == false)
{
// 无留言权的,不能新建,只能查看
if (itemId == 0)
{
Response.Redirect("~/Admin/EditAccessDenied.aspx");
}
else
{
// 不显示回复按钮
ReplyBtn.Visible=false;
}
}
}
/// <summary>
/// 回复
/// </summary>
/// <param name="Sender"></param>
/// <param name="e"></param>
void ReplyBtn_Click(Object Sender, EventArgs e)
{
// 显示留言部分
EditPanel.Visible = true;
ButtonPanel.Visible = false;
}
/// <summary>
/// 提交新留言
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void UpdateBtn_Click(Object sender, EventArgs e)
{
DiscussionDB discuss = new DiscussionDB();
itemId = discuss.AddMessage(moduleId, itemId, User.Identity.Name, Server.HtmlEncode(TitleField.Text), Server.HtmlEncode(BodyField.Text));
EditPanel.Visible = false;
ButtonPanel.Visible = true;
BindData();
}
/// <summary>
/// 取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void CancelBtn_Click(Object sender, EventArgs e)
{
// Update visibility of page elements
EditPanel.Visible = false;
ButtonPanel.Visible = true;
}
/// <summary>
/// 初始化绑定页面数据
/// </summary>
void BindData()
{
// Obtain the selected item from the Discussion table
DiscussionDB discuss = new DiscussionDB();
SqlDataReader dr = discuss.GetSingleMessage(itemId);
// Load first row from database
dr.Read();
// Security check. verify that itemid is within the module.
int dbModuleID = Convert.ToInt32(dr["ModuleID"]);
if (dbModuleID != moduleId)
{
dr.Close();
Response.Redirect("~/Admin/EditAccessDenied.aspx");
}
// Update labels with message contents
Title.Text = (String) dr["Title"];
Body.Text = (String) dr["Body"];
CreatedByUser.Text = (String) dr["CreatedByUser"];
CreatedDate.Text = String.Format("{0:d}", dr["CreatedDate"]);
TitleField.Text = ReTitle(Title.Text);
int prevId = 0;
int nextId = 0;
// Update next and preview links
object id1 = dr["PrevMessageID"];
if (id1 != DBNull.Value)
{
prevId = (int) id1;
prevItem.HRef = Request.Path + "?ItemId=" + prevId + "&mid=" + moduleId;
}
object id2 = dr["NextMessageID"];
if (id2 != DBNull.Value)
{
nextId = (int) id2;
nextItem.HRef = Request.Path + "?ItemId=" + nextId + "&mid=" + moduleId;
}
// close the datareader
dr.Close();
// Show/Hide Next/Prev Button depending on whether there is a next/prev message
if (prevId <= 0)
{
prevItem.Visible = false;
}
if (nextId <= 0)
{
nextItem.Visible = false;
}
}
/// <summary>
/// 获取回复标题
/// </summary>
/// <param name="title"></param>
/// <returns></returns>
String ReTitle(String title)
{
if (title.Length > 0 & title.IndexOf("Re: ",0) == -1)
{
title = "Re: " + title;
}
return title;
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ReplyBtn.Click += new System.EventHandler(this.ReplyBtn_Click);
this.updateButton.Click += new System.EventHandler(this.UpdateBtn_Click);
this.cancelButton.Click += new System.EventHandler(this.CancelBtn_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?