블로그 이미지
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

2009. 10. 8. 01:06 .Net Project/ASP.NET 3.5 Sp1
반응형
 Basic.Delete.aspx 디자인 모드



- 리스트 목록 List.aspx 에서 목록 선택하여 다음과 같이 이동 가능 하며,

- 이동 후에 수정 페이지 Modify.aspx 이동 하고, 삭제 Delete.aspx 로 페이지 이동 하면

- 다음과 같은 화면이 출력 "1번 글을 삭제 하시겠습니까??"

- 암호 텍스트 박스 입력후 암호 일치하면 삭제 완료 되며,

- 암호가 일치(불일치)할 경우에는 Lavel에 "패스워드가 일치 않습니다"라는 메시지 출력 

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

<!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>글 삭제: Delete</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Label ID="lblNum" runat="server" ForeColor="Red"></asp:Label>
                          번 글을 삭제 하겠습니까 <br />
   
    암호 :
    <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
    <asp:Button ID="btnDelete" runat="server" Text="삭제"
            OnClientClick="return confirm('정말로삭제??');"
                                 onclick="btnDelete_Click" />
    <asp:Button ID="btnCancel" runat="server" Text="취소" 
                                 onclick="btnCancel_Click" />
    
    <asp:Label ID="lblError" runat="server" Text="Label"></asp:Label>
   
    </div>
    </form>
</body>
</html>


 Basic.Delete.aspx.Cs 이벤트 컨트롤 관련 모드

using System;
using System.Collections;
using System.Configuration;
using System.Data;

using System.Data.SqlClient;

public partial class Basic_Delete : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //넘겨져 온 번호 값 검사
        if (String.IsNullOrEmpty(Request["Num"]))
        {
            Response.Write("잘못된 요청입니다");
            Response.End();
        }
        else
        {
            //레이블에 넘겨져 온 번호 값 출력
            this.lblNum.Text = Request["Num"];
        }
    }
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        if (IsPasswordCorrect())
        {
            SqlConnection con = new SqlConnection
                                  (ConfigurationManager.ConnectionStrings
                                   ["ConnectionString"].ConnectionString);
            con.Open();

            SqlCommand cmd = new SqlCommand("DeleteBasic", con);
            
            cmd.CommandType = CommandType.StoredProcedure;

            //파라미터:List.aspx에서 넘겨운 쿼리 스트링값
            cmd.Parameters.AddWithValue("@Num", Request["Num"]);
            cmd.Parameters.AddWithValue("@Password", txtPassword.Text);

            cmd.ExecuteNonQuery(); //삭제

            //삭제 후 리스트로 이동
            Response.Redirect("List.aspx");
        }
        else
     {
            this.lblError.Text = "암호가 틀립니다";   
     }
    }

    //번호와 암호가 맞으면 참을 반환, 그렇지 않으면 거짓을 반환
    private bool IsPasswordCorrect()
    {
        bool result = false;
        SqlConnection con = new SqlConnection
                             (ConfigurationManager.ConnectionStrings 
                              ["ConnectionString"].ConnectionString);
        con.Open();

        SqlCommand cmd = new SqlCommand(
            "Select *From Basic Where Num =
                                                   @Num And Password = @Password", con);

        cmd.Parameters.AddWithValue("@Num", Request["Num"]);
        cmd.Parameters.AddWithValue("@Password", txtPassword.Text);
       
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read()) //데이터가 읽혀진다면, 번호와 암호가 맞음
        {
            result = true;

        }
        return result;

    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        //취소버튼 클릭시 뒤로(상세 보기 페이지로 이동)
        Response.Redirect("View.aspx?Num=" + Request["Num"]);
    }
}







반응형
posted by Magic_kit
2009. 10. 8. 01:04 .Net Project/ASP.NET 3.5 Sp1
반응형
 Basic Modify.aspx 디자인 모드                                                                         



- 번호, 이메일, 홈페이지, 제목, 내용 의 내용을 비밀번호 입력 후 일치하면 다음과 같이 
   삭제 완료 됩니다.(비밀번호 일치 하지 않으면 "암호가 틀립니다" 라는 메시지 출력)

- 수정 버튼을 클릭하면 수정을 완료 할 수 있습니다. 

- 리스트 버튼 클릭시 (수정완료) 화면 List.aspx로 이동 하게 되어 있습니다. 

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

<!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>수정 : Modify</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h3>글 수정</h3>
   
    번호
    <asp:Label ID="lblNum" runat="server" Text=""></asp:Label>
    
    이름:
    <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 />
   
     인코딩 : <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 />
   
    <asp:Button ID="btnModify" runat="server" Text="수정"
            onclick="btnWrite_Click" /> &nbsp
   
    <asp:Button ID="btnList" runat="server" Text="리스트"
            onclick="btnList_Click" />&nbsp;
  
    <asp:Label ID="lblError" runat="server" Text="Label" 
            ForeColor="Red"></asp:Label> <br />    
    </div>
    </form>
</body>
</html>




 Basic Modify.aspx.Cs 컨트롤 이벤트 모드  

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

public partial class Basic_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()
    {
        //VIew.aspx
        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.txtName.Text = dr["Name"].ToString();
            this.txtEmail.Text = dr["Email"].ToString();
            this.txtHomepage.Text = dr["Homepage"].ToString();
            this.txtTitle.Text = dr["Title"].ToString();
          
            this.txtContent.Text = dr["Content"].ToString();
          
            //인코딩에 따른 Content 출력 3가지 방법
            string encoding = dr["Encoding"].ToString(); //Text/Html
            if (encoding == "HTML")
            {
                this.lstEncoding.SelectedIndex = 1;
            }
            else if (encoding == "Mixed") //태그는 실행하되, 엔터는 처리
            {
                this.lstEncoding.SelectedIndex = 2;
            }
        }
        dr.Close();

        con.Close();       
       
    }

    //수정
    protected void btnWrite_Click(object sender, EventArgs e)
    {
        //Write.aspx 페이지와 동일한 패턴
        if (IsPasswordCorrect())
        {
            SqlConnection objcon = new SqlConnection
                 (ConfigurationManager.ConnectionStrings
                 ["ConnectionString"].ConnectionString);


            SqlCommand objCmd = new SqlCommand("ModifyBasic", objcon);
           
            objCmd.CommandType = CommandType.StoredProcedure;

            objCmd.Parameters.AddWithValue("@Name", txtName.Text);
            objCmd.Parameters.AddWithValue("@Email", txtEmail.Text);
            objCmd.Parameters.AddWithValue("@Title", txtTitle.Text);
            objCmd.Parameters.AddWithValue("@ModifyIP",
                                                               Request.UserHostAddress);
           
            objCmd.Parameters.AddWithValue("@Content", txtContent.Text);
            objCmd.Parameters.AddWithValue("@Encoding",
                                                                 lstEncoding.SelectedValue);
            objCmd.Parameters.AddWithValue("@Homepage", txtHomepage.Text);
            objCmd.Parameters.AddWithValue("@Num", lblNum.Text);
            objCmd.Parameters.AddWithValue("@Password", txtPassword.Text);

            objcon.Open();
            objCmd.ExecuteNonQuery();
            objcon.Close();

            Response.Redirect
            ("View.aspx?Num=" + Request["Num"]); //상세보기로 가서 수정 확인 
        }
        else
        {
            lblError.Text = "암호가 틀립니다";
        }
    }
    private bool IsPasswordCorrect()
    {
        bool result = false;
        SqlConnection con = new SqlConnection
             (ConfigurationManager.ConnectionStrings
             ["ConnectionString"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand(
            "Select *From Basic Where Num =
                         @Num And Password = @Password", con);

        cmd.Parameters.AddWithValue("@Num", Request["Num"]);
        cmd.Parameters.AddWithValue("@Password", txtPassword.Text);

        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read()) //데이터가 읽혀진다면, 번호와 암호가 맞음
        {
            result = true; 
        }
        return result;
    }
    protected void btnList_Click(object sender, EventArgs e)
    {
        Response.Redirect("List.aspx");
    }
}    





반응형
posted by Magic_kit
2009. 10. 6. 18:35 .Net Project/ASP.NET 3.5 Sp1
반응형

   



    
    <div>    
    <h3>글쓰기 </h3>
     이름:
    <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 />
  
    인코딩 : <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 />
    <asp:Button ID="btnWrite" runat="server" Text="저장"
            onclick="btnWrite_Click" /> &nbsp
    <asp:Button ID="btnList" runat="server" Text="리스트"
            onclick="btnList_Click" /><br />
    </div>
    </form>
</body>
</html>


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class Basic_Write : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //txtName 텍스트박스에 포커스
        Page.SetFocus("txtName");

    }
    protected void btnWrite_Click(object sender, EventArgs e)
    {
        SqlConnection objcon = new SqlConnection
            (ConfigurationManager.ConnectionStrings
             ["connectionString"].ConnectionString);

        SqlCommand objcmd = new SqlCommand("WriteBasic", objcon);
        objcmd.CommandType = CommandType.StoredProcedure;

        objcmd.Parameters.AddWithValue("@Name", txtName.Text);
        objcmd.Parameters.AddWithValue("@Email", txtEmail.Text);
        objcmd.Parameters.AddWithValue("@Title", txtTitle.Text);
        objcmd.Parameters.AddWithValue("PostIP",
                                                       Request.UserHostAddress);
        objcmd.Parameters.AddWithValue("@Content", txtContent.Text);
        objcmd.Parameters.AddWithValue("@Password", txtPassword.Text);
        objcmd.Parameters.AddWithValue("@Encoding",
                                                            lstEncoding.SelectedValue);
        objcmd.Parameters.AddWithValue("@Homepage",
                                                                       txtHomepage.Text);

        objcon.Open();
        objcmd.ExecuteNonQuery(); //실행
        objcon.Close();

        btnList_Click(null, null); //리스트 페이지로 이동
    }
    protected void btnList_Click(object sender, EventArgs e)
    {
        //리스트 페이지로 이동
        Response.Redirect("List.aspx");
    }
}



반응형
posted by Magic_kit
2009. 10. 6. 18:05 .Net Project/ASP.NET 3.5 Sp1
반응형

 


- List.aspx 디자인



    <div>
    게시판 리스트
        <asp:GridView ID="ctlBasicList" runat="server" BackColor="White"
            AutoGenerateColumns="false"
            BorderColor="#999999" BorderStyle="Outset" BorderWidth="10px"
            CellPadding="3"
            ForeColor="Black" GridLines="Vertical">
            
            <div>
            <FooterStyle BackColor="#CCCCCC" />
            <PagerStyle BackColor="#999999" ForeColor="Black"
               HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True"
              ForeColor="White" />
            <HeaderStyle BackColor="Black" Font-Bold="True"
              ForeColor="White" />
            <AlternatingRowStyle BackColor="#CCCCCC" />
           
            <Columns>
                <asp:BoundField HeaderText="번호" DataField="Num"  />
              
                <asp:HyperLinkField HeaderText ="제목"
                         DataNavigateUrlFields ="Num"
                         DataNavigateUrlFormatString="View.aspx?Num={0}"
                         DataTextField="Title"
                         ItemStyle-Width ="350px" />
                        
                <asp:BoundField HeaderText="작성자" DataField="Name" />
                <asp:BoundField HeaderText="작성일" DataField="PostDate"
                  DataFormatString="{0:yyyy-MM-dd}" />
                <asp:BoundField HeaderText="조회수"
                        DataField="ReadCount" />
            </Columns>
        </asp:GridView>
       
    검색:<asp:DropDownList ID="lstSearchField" runat="server">
        <asp:ListItem Value="Name">이름</asp:ListItem>
        <asp:ListItem Value="Title" Selected="True">제목</asp:ListItem>
        <asp:ListItem Value="Content">내용</asp:ListItem>
        </asp:DropDownList>
        
        <asp:TextBox ID="txtSearchQuery" runat="server"></asp:TextBox>
        <asp:Button ID="btnSearch" runat="server" Text="검색"
          onclick="btnSearch_Click" /><br />
        <asp:Button ID="btnWrite" runat="server" Text="글쓰기"
                 onclick="btnWrite_Click" />
     </div>
    </form>
</body>
</html>
----------------------------------------------------------------------
List.CS
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class Basic_List : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //그리드뷰 컨트롤에 이터 출력
        if (!Page.IsPostBack)
        {
            //그리드뷰 컨트롤에 데이터 출력
            DisplayData();
        }
    }

    private void DisplayData()
    {
        //커넥션
        SqlConnection con = new SqlConnection
            (ConfigurationManager.ConnectionStrings
             ["ConnectionString"].ConnectionString);
       
        //커맨드
        SqlCommand cmd = new SqlCommand("ListBasic", con);

        //데이터어댑터
        SqlDataAdapter da = new SqlDataAdapter(cmd);

        //데이터셋
        DataSet ds = new DataSet();
       
        //Fill()
        da.Fill(ds,"Basic");
       
        //바인딩

        this.ctlBasicList.DataSource = ds.Tables[0];
        this.ctlBasicList.DataBind();

    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        //검색 페이지로 필드명과 검색어 전달
        string strUrl =
            String.Format(
                "Search.aspx?SearchField={0}&SearchQuery={1}"
                , lstSearchField.SelectedValue
                , txtSearchQuery.Text
                );
        Response.Redirect(strUrl);
      

    }
    protected void btnWrite_Click(object sender, EventArgs e)
    {
        Response.Redirect("Write.aspx");
    }
}






반응형
posted by Magic_kit