using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
/// <summary>
/// BoardView : 완성형(DotNetNote) 게시판의 상세 페이지
/// </summary>
public partial class DotNetNote_BoardView : System.Web.UI.Page
{
#region Private Member Variables
private string strNum;//앞(리스트)에서 넘겨져 온 번호 저장
#endregion
#region Event Handlers
//페이지 로드될 때 글 번호 받기
protected void Page_Load(object sender, System.EventArgs e)
{
strNum = Request.QueryString["Num"];
if (strNum == null)
{
Response.Redirect("./BoardList.aspx");
}
if (!this.IsPostBack)
{
ReadData();//넘겨져 온 번호에 해당하는 글만 읽어서 각 레이블에 출력
}
}
// 삭제 페이지로 이동
protected void btnDelete_Click(object sender, System.EventArgs e)
{
Response.Redirect("./BoardDelete.aspx?Num=" + strNum);
}
// 수정 페이지로 이동
protected void btnEdit_Click(object sender, System.EventArgs e)
{
Response.Redirect("./BoardModify.aspx?Num=" + strNum);
}
// 리스트 페이지로 이동
protected void btnList_Click(object sender, System.EventArgs e)
{
if (!String.IsNullOrEmpty(Request["SearchField"]) &&
!String.IsNullOrEmpty(Request["SearchQuery"]))
{
Response.Redirect("BoardSearch.aspx?SearchField="
+ Request["SearchField"] + "&SearchQuery="
+ Request["SearchQuery"]);
}
Response.Redirect("./BoardList.aspx");
}
// 답변 페이지로 이동
protected void btnReply_Click(object sender, System.EventArgs e)
{
Response.Redirect("BoardReply.aspx?Num=" + strNum);
}
#endregion
#region Private Methods
private void ReadData()
{
SqlConnection objCon = new SqlConnection();
objCon.ConnectionString =
ConfigurationManager.ConnectionStrings[
"ConnectionString"].ConnectionString;
objCon.Open();
SqlCommand objCmd = new SqlCommand();
objCmd.Connection = objCon;
objCmd.CommandText = "ViewDotNetNote";
objCmd.CommandType = CommandType.StoredProcedure;
objCmd.Parameters.Add("@Num", SqlDbType.Int).Value = strNum;
SqlDataReader objDr = objCmd.ExecuteReader();
if (objDr.Read())
{
lblNum.Text = strNum;//번호
lblName.Text = objDr["Name"].ToString();//이름
lblEmail.Text =
String.Format(
"<a href='mailto:{0}'>{1}</a>",
objDr["Email"].ToString(),
objDr["Email"].ToString()
);
lblTitle.Text = objDr["Title"].ToString();
string strContent = objDr["Content"].ToString();
// 인코딩 방식에 따른 데이터 출력
string strEncoding = objDr["Encoding"].ToString();
if (strEncoding == "Text") // Text : 소스 그대로 표현
{
lblContent.Text =
strContent.Replace("&", "&").Replace(
"<", "<").Replace(">", ">").Replace(
"\r\n", "<br />");
}
else if (strEncoding == "Mixed") // Mixed : 엔터처리만
{
lblContent.Text =
strContent.Replace("\r\n", "<br />");
}
else // HTML : HTML 형식으로 출력
{
lblContent.Text = strContent; // 변환없음
}
lblReadCount.Text = objDr["ReadCount"].ToString();
lblHomepage.Text =
String.Format(
"<a href='{0}' target='_blank'>{1}</a>",
objDr["Homepage"].ToString(),
objDr["Homepage"].ToString()
);
lblPostDate.Text = objDr["PostDate"].ToString();
lblPostIP.Text = objDr["PostIP"].ToString();
if (objDr["FileName"].ToString().Length > 1)
{
lblFile.Text =
String.Format("<a href='./BoardDown.aspx?Num={0}'>"
+ "{1}{2} / 전송수: {3}</a>",
objDr["Num"].ToString(),
"<img src='images/ext_zip.gif' border='0'>",
objDr["FileName"].ToString(),
objDr["DownCount"].ToString()
);
if (RedPlus.Library.Board.IsPhoto(
objDr["FileName"].ToString()))
{
ltrImage.Text =
String.Format(
"<img src='ImageDown.aspx?FileName={0}'>",
Server.UrlEncode(objDr["FileName"].ToString())
);
}
}
else
{
lblFile.Text = "(업로드된 파일이 없습니다.)";
}
}
objDr.Close();
objCon.Close();
}
#endregion
} |