View.aspx |
<div>
<h3>글 보기</h3>
제목 :<asp:Label ID="lblTitle" runat="server">
</asp:Label><br />
번호 :<asp:Label ID="lblNum" runat="server">
</asp:Label><br />
이름 :<asp:Label ID="lblName" runat="server">
</asp:Label><br />
이메일 :<asp:Label ID="lblEmail" runat="server">
</asp:Label><br />
홈페이지 :<asp:Label ID="lblHomepage" runat="server">
</asp:Label><br />
작성일 :<asp:Label ID="lblPostDate" runat="server">
</asp:Label> <br />
조회수 :<asp:Label ID="lblReadCount" runat="server">
</asp:Label><br />
IP주소 :<asp:Label ID="lblPostIP" runat="server">
</asp:Label> <br />
<asp:Label ID="lblContent" runat="server"></asp:Label><br />
<asp:Button ID="btnModify" runat="server" Text="수정"
onclick="btnModify_Click" />
<asp:Button ID="btnDelete" runat="server" Text="삭제"
onclick="btnDelete_Click" />
<asp:Button ID="btnList" runat="server" Text="리스트"
onclick="btnList_Click" /> </div> |
View.aspx.cs |
protected void Page_Load(object
sender, EventArgs
e) {
// 넘겨져 온 쿼리 스트링 검사
if (String.IsNullOrEmpty(Request["Num"]))
{
Response.Write("잘못된 요청입니다.");
Response.End(); // 현재 페이지 멈추기
}
else
{
if (!Page.IsPostBack)
{ // 넘겨져 온 번호에 해당하는 글 출력 DisplayData();
}
} } private void DisplayData() {
SqlConnection con = new SqlConnection(
ConfigurationManager.ConnectionStrings
["ConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("ViewBasic", con);
cmd.CommandType = CommandType.StoredProcedure;
// 파라미터 : List.aspx에서 넘겨온 쿼리스트링 값
cmd.Parameters.AddWithValue("@Num",
Request["Num"]);
// 상세 보기 : DataReader
SqlDataReader dr =
cmd.ExecuteReader();
// 바인딩 : 각각의 컨트롤
while (dr.Read())
{
this.lblNum.Text = dr["Num"].ToString();
this.lblName.Text = dr["Name"].ToString();
this.lblEmail.Text = dr["Email"].ToString();
this.lblHomepage.Text =
dr["Homepage"].ToString();
this.lblTitle.Text = dr["Title"].ToString();
this.lblPostDate.Text =
dr["PostDate"].ToString();
// 인코딩에 따른 Content 출력 3가지 방법
// Write.aspx페이지에서 <%page 부분에 ValidateRequest="false"
추가
string encoding = dr["Encoding"].ToString(); // Text/HTml/Mixed
if (encoding == "Text") // 입력한 모양 그대로 출력
{ this.lblContent.Text
= dr["Content"].ToString() .Replace("&", "&").Replace("<", "<") .Replace(">", ">") .Replace("\t", " ") .Replace("\r\n", "<br
/>");
}
else if (encoding == "Mixed") // 태그는 실행하되, 엔터는 처리
{ this.lblContent.Text
= dr["Content"].ToString() .Replace("\r\n", "<br
/>");
}
else // HTML로 변환해서 출력
{ this.lblContent.Text
= dr["Content"].ToString();
}
this.lblContent.Text = dr["Content"].ToString();
this.lblReadCount.Text =
dr["ReadCount"].ToString();
this.lblPostIP.Text = dr["PostIP"].ToString();
}
dr.Close();
con.Close(); } protected void btnModify_Click(object sender, EventArgs
e) {
// 수정 페이지로 현재 글의 번호 값 넘김
string strUrl = String.Empty;
strUrl = "./Modify.aspx?Num="
+ Request["Num"];
Response.Redirect(strUrl); } protected void btnDelete_Click(object sender, EventArgs
e) {
// 삭제 페이지로 현재 글의 번호 값 넘김
Response.Redirect(String.Format(
"./Delete.aspx?Num={0}",
Request["Num"]));
} protected void btnList_Click(object sender, EventArgs
e) {
// 리스트 페이지로 이동
Response.Redirect("./List.aspx"); } |
결과화면 |
[그림3-1] |
'ASP.NET' 카테고리의 다른 글
05.ASP.NET - 기본형 게시판(6) : 수정(Modify) 페이지 (0) | 2009.10.07 |
---|---|
04.ASP.NET - 기본형 게시판(5) : Delete(삭제) 페이지 (0) | 2009.10.07 |
02.ASP.NET - 기본형 게시판(3) : Write(글쓰기) 페이지 (2) | 2009.10.07 |
01.ASP.NET - 기본형 게시판(2) : List(리스트) 페이지 (3) | 2009.10.07 |
00.ASP.NET - 기본형 게시판(1) : DB설계 (1) | 2009.10.07 |
Comments