블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Category

Recent Post

Recent Comment

Archive

'.Net Project'에 해당되는 글 538

  1. 2009.10.27 41-8장 답변형 게시판(View)
  2. 2009.10.27 41-7장 답변형 게시판(Modify)
  3. 2009.10.27 41-6장 답변형 게시판(List)
  4. 2009.10.27 41-5장 답변형 게시판(Write)
2009. 10. 27. 02:31 .Net Project/ASP.NET 3.5 Sp1
반응형
ReplyView.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="View.aspx.cs"
         Inherits
="Reply_View" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script type="text/javascript">

        function GoModify() {

            location.href = 'Modify.aspx?Num=<%= Request["Num"] %>';

        }

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <h3>상세보기</h3>

        <div>

            번호 : <asp:Label ID="lblNum" runat="server" /><br />

            제목 : <asp:Label ID="lblTitle" runat="server" /><br />

            이름 : <asp:Label ID="lblName" runat="server" /><br />

            이메일 : <asp:Label ID="lblEmail" runat="server" /><br />

            홈페이지 : <asp:Label ID="lblHomepage" runat="server" /><br />

            작성일 : <asp:Label ID="lblPostDate" runat="server" /><br />

            수정일 : <asp:Label ID="lblModifyDate" runat="server" /><br />

            조회수 : <asp:Label ID="lblReadCount" runat="server" /><br />

            IP주소 : <asp:Label ID="lblPostIP" runat="server" /><br />

            <asp:Label ID="lblContent" runat="server" /><br />

            <br />

            <!-- 서버 컨트롤 사용 -->

            <asp:Button ID="btnReply" runat="server" Text="답변" 
                 onclick
="btnReply_Click" />

           

            <!-- OnClientScrip 사용 -->

            <asp:Button ID="btnModify" runat="server" Text="수정"
                 onclick
="btnModify_Click" />

           

            <!-- HTML 삭제 버튼 생성 -->

            <input type="button" value="삭제" onclick="location.href='<%
                        "Delete.aspx?Num=" + Request["Num"] %>
';" />

           

            <!-- HTML 리스트로 이동하는 버튼 생성-->

            <input type="button" value="리스트"
                        onclick
="location.href='List.aspx';" />

        </div>

    </div>

    </form>

</body>

</html> 


ReplyView.Cs
using System;

using Reply.Entity;

using Reply.Bsl;

 

public partial class Reply_View : System.Web.UI.Page

{

    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()

    {

        // 메서드 실행 결과값을 ReplyEntity 엔티티 개체에 담기

        ReplyEntity re =

            (new Reply.Bsl.ReplyBiz()).SelectReplyByNum
                                       (
Convert.ToInt32(Request["Num"]));

       

        // 각각의 컨트롤에 바인딩

        lblNum.Text = Request["Num"];

        lblTitle.Text = re.Title;

        lblName.Text = re.Name;

        lblEmail.Text = re.Email;

        lblHomepage.Text = re.Homepage;

        lblPostDate.Text = re.PostDate.ToString();

 

        // 수정 되었을 때에만, 해당 날짜 기록

        if (re.ModifyDate != DateTime.MinValue)

        {

            lblModifyDate.Text = re.ModifyDate.ToString();

        }

        

        lblReadCount.Text = re.ReadCount.ToString();

        lblPostIP.Text = re.PostIP;

 

        #region 인코딩 방식에 따른 컨텐츠 출력

 

        lblContent.Text = Reply.Common.Board.ConvertContentByEncoding
                          (re.Content, re.Encoding);

 

        // Common 폴더에 메서드화

        //if (re.Encoding == "Text") // 태그 실행 방지/소스 그대로

        //{

        //    lblContent.Text = re.Content.Replace("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;").Replace("\r\n", "<br />").Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");

        //}

        //else if (re.Encoding == "Mixed") // 태그 실행

        //{

        //    lblContent.Text = re.Content.Replace("\r\n", "<br />");

        //}

        //else // HTML 표시

        //{

        //    lblContent.Text = re.Content;

        //}

        #endregion

    }

 

    protected void btnReply_Click(object sender, EventArgs e)

    {

        // Mode=Reply Write.aspx 페이지로 넘어가면, 답변 로직 처리

        Response.Redirect("Write.aspx?Mode=Reply&Num=" + Request["Num"]);

    }

    protected void btnModify_Click(object sender, EventArgs e)

    {

        Response.Redirect("Modify.aspx?Num=" + Request["Num"]);

    }

} 







반응형
posted by Magic_kit
2009. 10. 27. 02:31 .Net Project/ASP.NET 3.5 Sp1
반응형
ReplyModify.aspx 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Modify.aspx.cs" Inherits="Reply_Modify" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        이름 : <asp:TextBox ID="txtName" 
                    runat
="server"></asp:TextBox><br />   

        이메일 : <asp:TextBox ID="txtEmail"  
                    runat
="server"></asp:TextBox><br />

        홈페이지 : <asp:TextBox ID="txtHomepage" 
                    runat
="server"></asp:TextBox><br />

        제목 : <asp:TextBox ID="txtTitle"
                    runat
="server"></asp:TextBox><br />

        내용 : <asp:TextBox ID="txtContent" runat="server"
                    TextMode
="MultiLine"
                  
 Columns="20" Rows="5"></asp:TextBox><br />

        인코딩 : <asp:RadioButtonList ID="lstEncoding" runat="server"
                      RepeatDirection
="Horizontal" RepeatLayout="Flow">

            <asp:ListItem Selected="True">Text</asp:ListItem>

            <asp:ListItem>HTML</asp:ListItem>

            <asp:ListItem>Mixed</asp:ListItem>           

        </asp:RadioButtonList><br />

        암호 : <asp:TextBox ID="txtPassword" runat="server"
                    TextMode
="Password"></asp:TextBox><br />

        <br />

        <asp:LinkButton ID="btnModify" runat="server"
             OnClick
="btnModify_Click">
수정</asp:LinkButton>&nbsp;

        <a href="View.aspx?Num=<%= Request["Num"] %>">취소</a><br />

        <asp:Label ID="lblError" runat="server" ForeColor="Red"></asp:Label>

    </div>

    </form>

</body>

</html> 


 ReplyModify.Cs
using System;

using Reply.Entity;

using Reply.Bsl;

 

public partial class Reply_Modify : System.Web.UI.Page

{

    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()

    {

        ReplyEntity re = new ReplyEntity();

 

        ReplyBiz rb = new ReplyBiz();

 

        rb.SelectReplyByNum(Convert.ToInt32(Request["Num"]));

        re = rb.SelectReplyByNum(Convert.ToInt32(Request["Num"]));

 

        // 각각의 컨트롤에 바인딩

        txtName.Text = re.Name;

        txtEmail.Text = re.Email;

        txtTitle.Text = re.Title;

        txtHomepage.Text = re.Homepage;

        txtContent.Text = re.Content;

 

        // 예전 인코딩에 따른 라디오버튼 리스트 선택

        if (re.Encoding.ToLower() == "html")

        {

            lstEncoding.SelectedIndex = 1;

        }

        else if (re.Encoding.ToLower() == "mixed")

        {

            lstEncoding.SelectedIndex = 2;

        } 

    } 

    protected void btnModify_Click(object sender, EventArgs e)

    {

        // DB 저장

        ReplyBiz rb = new ReplyBiz();

        ReplyEntity re = new ReplyEntity();

 

        re.Num = Convert.ToInt32(Request["Num"]);

        re.Name = txtName.Text;

        re.Email = txtEmail.Text;

        re.Title = txtTitle.Text;

        re.Content = txtContent.Text;

        re.Password = txtPassword.Text;

        re.Encoding = lstEncoding.SelectedValue;

        re.Homepage = txtHomepage.Text;

       

        re.ModifyDate = DateTime.Now;

        re.ModifyIP = Request.UserHostAddress;

 

        int result = rb.UpdateReply(re);

        if (result == -1)

        {

            lblError.Text = "암호가 틀립니다.";

        }

        else

        {

            // 상세보기로 이동

            Response.Redirect("View.aspx?Num=" + Request["Num"]);

        }

    }

} 









반응형
posted by Magic_kit
2009. 10. 27. 02:30 .Net Project/ASP.NET 3.5 Sp1
반응형
 ReplyList.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="List.aspx.cs"
                       Inherits
="Reply_List" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>리스트</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <h3>출력</h3>

        <div>

            <asp:GridView ID="ctlReplyList"
                              runat="server" AutoGenerateColumns="false">

                <Columns>

                    <asp:TemplateField HeaderText="제목">

                        <ItemTemplate>

                            <%# FuncStep(Eval("Step")) %>

                            <asp:HyperLink ID="lnkTitle" runat="server"

                        NavigateUrl='<%# "View.aspx?Num=" + Eval("Num") %>'>

                            <%# Eval("Title") %>

                            </asp:HyperLink>

                      <%# Reply.Common.Board.GetNewImg(Eval("PostDate")) %>

                        </ItemTemplate>

                    </asp:TemplateField>

                    <asp:BoundField HeaderText="Ref" DataField="Ref" />

                    <asp:BoundField HeaderText="Step" DataField="Step" />

              <asp:BoundField HeaderText="RefOrder" DataField="RefOrder" />

                </Columns>

                <EmptyDataTemplate>

                    <div>입력된 데이터 없습니다..</div>

                </EmptyDataTemplate>

            </asp:GridView>

            <asp:HyperLink ID="lnkWrite" runat="server"

                NavigateUrl="~/Reply/Write.aspx">글쓰기</asp:HyperLink>

        </div>

    </div>

    </form>

</body>

</html> 







반응형
posted by Magic_kit
2009. 10. 27. 02:28 .Net Project/ASP.NET 3.5 Sp1
반응형
Reply Write.aspx 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Write.aspx.cs" Inherits="Reply_Write" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <h3><asp:Literal ID="ltrTitle" runat="server"
                
 Text="
쓰기"></asp:Literal></h3>

        <div>

            이름:

            <asp:TextBox ID="txtName" runat="server" /><br />

            이메일:

            <asp:TextBox ID="txtEmail" runat="server" /><br />

            홈페이지:

            <asp:TextBox ID="txtHomepage" runat="server" /><br />

            제목:

            <asp:TextBox ID="txtTitle" runat="server" /><br />

            내용:

            <asp:TextBox ID="txtContent" runat="server"
                
TextMode="MultiLine" Columns="20" Rows="5">

            </asp:TextBox><br />

            인코딩:

            <asp:RadioButtonList ID="lstEncoding" runat="server"     
                RepeatDirection
="Horizontal"

                RepeatLayout="Flow">

              <asp:ListItem Selected="True">Text</asp:ListItem>

              <asp:ListItem>HTML</asp:ListItem>

              <asp:ListItem>Mixed</asp:ListItem>

            </asp:RadioButtonList>

                <br />

            비밀번호:

            <asp:TextBox ID="txtPassword" runat="server" 
                 TextMode
="Password"></asp:TextBox><br />

            <br />

            <asp:Button ID="btnWrite" runat="server"
               
 Text="
저장" Height="21px"

                onclick="btnWrite_Click" />

            <asp:HyperLink ID="btnList" runat="server"
               
 Text="
리스트" NavigateUrl="List.aspx" />

        </div>

    </div>

    </form>

</body>

</html> 


 Reply Write.Cs
using System;

using Reply.Entity;

using Reply.Bsl;

 

public partial class Reply_Write : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // Mode=Reply 식으로 Mode값이 / 값이 아니라면, 답변하기 로직 적용

        if (!String.IsNullOrEmpty(Request["Mode"]))

        {

            ltrTitle.Text = "답변달기";

            btnWrite.Text = " 답변";

            if (!Page.IsPostBack)

            {

                DisplayData();

            }

        }

    }

 

    private void DisplayData()

    {

        // 부모글의 제목과 내용을 텍스트박스에 바인딩

        ReplyEntity re = (new ReplyBiz()).SelectReplyByNum
                         (
Convert.ToInt32(Request["Num"]));

 

        this.txtTitle.Text = "Re : " + re.Title; // 부모글의 Re : 붙여서 출력

        this.txtContent.Text =

            "\r\n\r\n--------------------\r\n>" +

            re.Content.Replace("\r\n", "\r\n>")

            + "\r\n--------------------\r\n";

    }

    protected void btnWrite_Click(object sender, EventArgs e)

    {

        ReplyEntity re = new ReplyEntity();

 

        re.Name = txtName.Text;

        re.Email = txtEmail.Text;

        re.Homepage = txtHomepage.Text;

        re.Title = txtTitle.Text;

        re.PostIP = Request.UserHostAddress;

        re.Content = txtContent.Text;

        re.Encoding = lstEncoding.SelectedValue;

        re.Password = txtPassword.Text;

       

        if (!String.IsNullOrEmpty(Request["Mode"]) && Request
                    [
"Mode"].ToLower() == "reply")

        {

          // 답변 로직 처리 : 두번째 매개변수가 부모글의 번호(ParentNUm) 저장

        (new ReplyBiz()).InsertReply(re, Convert.ToInt32(Request["Num"]));

        }

        else

        {

            // 저장 로직 처리

            ReplyBiz rb = new ReplyBiz();

            rb.InsertReply(re);

        }

         // 리스트로 이동

        string strJs = @"

            <script>alert('입력되었습니다.');
                    location.href='List.aspx';</script>

        ";

        Page.ClientScript.RegisterClientScriptBlock
                                      (
this.GetType(), "goList", strJs);

    }

} 




반응형
posted by Magic_kit