ASP.NET 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : [6][1] RedPlusMemo.ascx.cs
글번호: 306
작성자: 레드플러스
작성일: 2008/07/16 오전 11:04:00
조회수: 4457
using System;
using System.Web.UI;
using RedPlus.Modules.Memo;

public partial class Memo_RedPlusMemoControl : System.Web.UI.UserControl
{
    //[1] 페이징 번호 임시 저장용 필드
    private int intPage = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        //[5] 참고 : Default.aspx?Page={0} 식으로 넘어 온다면...
        if (!String.IsNullOrEmpty(Request["Page"]))
        {
            intPage = Convert.ToInt32(Request["Page"]) - 1;//n-1규칙    
        }
        //[4] PagingHelper 컨트롤에 전체 레코드 수 지정
        if (!btnClose.Visible)
        {
            PagingHelper1.VirtualItemCount = MemoController.GetTotalMemo();
        }
        //[!] PagingHelper 컨트롤에 검색 결과 레코드 수 지정
        else
        {
            PagingHelper1.VirtualItemCount =
                MemoController.GetTotalFindMemo(
                    lstSearchField.SelectedValue, txtSearchQuery.Text);
        }

        if (!Page.IsPostBack)
        {
            DisplayData();
        }
    }
    private void DisplayData()
    {
        if (!btnClose.Visible) // 검색종료 버튼이 보이지 않으면 일반 리스트
        {
            //[3] 페이징 값 매개변수로 전달
            ctlMemoList.DataSource = MemoController.GetMemos(intPage);
            ctlMemoList.DataBind();
        }
        else // 검색종료 버튼이 보이면 검색 리스트
        {
            ctlMemoList.DataSource =
                MemoController.GetFindMemos(
                    intPage
                    , lstSearchField.SelectedValue
                    , txtSearchQuery.Text);
            ctlMemoList.DataBind();
        }
    }
    protected void PagingHelper1_OnPageIndexChanged(object sender, TaeyoNetLib.PagingEventArgs e)
    {
        //[2] 현재 보여줄 페이지 값 지정
        intPage = e.PageIndex;
        DisplayData();
    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        this.btnClose.Visible = true;
        //[4] PagingHelper 컨트롤에 전체 레코드 수 지정
        //[!] PagingHelper 컨트롤에 검색 결과 레코드 수 지정
        PagingHelper1.VirtualItemCount =
            MemoController.GetTotalFindMemo(
                lstSearchField.SelectedValue, txtSearchQuery.Text);

        this.ctlMemoList.DataSource = MemoController.GetFindMemos(intPage, lstSearchField.SelectedValue, txtSearchQuery.Text);
        this.ctlMemoList.DataBind();
    }

    protected void btnWrite_Click(object sender, EventArgs e)
    {
        // MemoInfo 클래스의 인스턴스 생성
        MemoInfo mi = new MemoInfo();
        mi.Name = txtName.Text;
        mi.Email = txtEmail.Text;
        mi.Title = txtTitle.Text;
        mi.PostIP = Request.UserHostAddress;
        // MemoController 클래스의 메서드 호출
        MemoController.AddMemo(mi);
        // 이동
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]);
    }
    protected void btnClose_Click(object sender, EventArgs e)
    {
        // 이동
        Response.Redirect(Request.ServerVariables["SCRIPT_NAME"]);
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 GridView로 리스트 출력시 번호를 순서대로 - 레드플러스 2009-08-13 6219
  [!] 3Tier + Enterprise Library 한줄 메모장(Memo Appl... - 레드플러스 2008-07-16 5907
  [1]한줄메모장 작성을 위한 테이블 및 저장 프로시저 작성 - 레드플러스 2008-07-16 6363
  [2] Visual Studio 2008 Solution Explorer 구성 WebMemoEL.jpg(59 KB) 레드플러스 2008-07-16 5097
  [3] DB Layer : Database Abstract Class : DataPr... - 레드플러스 2008-07-16 5339
  [3][1] SQL Server 전용 DB 처리 : SqlDataProvider.cs - 레드플러스 2008-07-16 5680
  [4] Biz로직 : Entity Class : MemoInfo.cs - 레드플러스 2008-07-16 4325
  [5] Business Layer : Controller Class : MemoCon... - 레드플러스 2008-07-16 4888
  [6] Presentation Layer : UI : RedPlusMemo.ascx - 레드플러스 2008-07-16 7203
현재글 [6][1] RedPlusMemo.ascx.cs - 레드플러스 2008-07-16 4457
다음글 [!] 답변형 게시판 : /WebReply/ - 레드플러스 2008-07-14 5468
 
손님 사용자 Anonymous (손님)
로그인 Home