Blog Content

    티스토리 뷰

    03.ASP.NET - 기본형 게시판(4) : View(상세보기) 페이지

    반응형
    View(상세보기) :글쓴 내용 보는 페이지

    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("&", "&amp;").Replace("<", "&lt;")

                   .Replace(">", "&gt;")

                   .Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;")

                   .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]



    반응형

    Comments